一个PHP类的问题,为什么我提交了参数会报错呢,各位大神求教,感谢了!!
class TokenStorage{
public function performAction($action,$data){
switch ($action){
case 'create':
$this->createToken($data);
break;
case 'delete':
$this->clearToken($data);
break;
default:
throw new Exception('unknown action');
}
}

public function createToken($seed){
$token = md5($seed);
file_put_contents('D:\\phpStudy\\PHPTutorial\\WWW\\day6\\'.$token,'....data');
}

public function clearToken($token){
$file=preg_replace("/[^a-z.-_]","",$token);
unlink('D:\\phpStudy\\PHPTutorial\\WWW\day6\\'.$file);
}


}
$storage= new TokenStorage();
$storage->performAction($_GET['action'],$_GET['data']);//action = delete&data结果会有报错,忘赐教!!

解决方案 »

  1.   

    throw new Exception('unknown action');
    改成
    throw new \Exception('unknown action');
    试试
      

  2.   

    特么的,我把你的代码复制过去,并复制你的action = delete&data到我的地址栏,报一样的错。打印&_GET,如下。
    哎哟我真是纳闷了,重新手输了地址,没报错。后来发现是&符号的问题。查了一下你的&符号ASCII码和我的&符号ASCII码。明显不一样。
    可是我死活输不出你的&符号,因为我电脑没装其他中文输入法,用手机搜狗输了一个中文&传到电脑,真相了。地址千万别用中文符号,千万别用搜狗输入法!不然你的程序怎么死的你都不知道,这bug谁特么能看出来。以上,不接受反驳。