今天,在我们的某些PHP代码中遇到了一个非常奇怪的行为。我们有一个处理文件的类。就像这样:

class AFile {

 //usual constructor, set and get functions, etc.
 //...

  public function save() {
    //do some validation
    //...

    if($this->upload()) { //save the file to disk
      $this->update_db(); //never reached this line
    }
  }

  private function upload() {
     //save the file to disk
     //...
     return ($success) ? true : false;
  }
}

对我们来说,这看起来很正常,但是$ this-> upload()函数只返回NULL。我们检查了正确的功能正在运行。在它返回之前,我们回显了它的返回值。我们尝试仅返回一个真值,甚至一个字符串。一切都检查正确。但是$ this-> upload仍然评估为NULL。另外,日志中没有任何内容,并且ERROR_ALL处于打开状态。

在激怒中,我们将函数名称更改为foo_upload。突然一切都正常了。 “upload”不在PHP reserved words列表中。任何人都想到为什么名为“upload”的类函数会失败?

最佳答案

确保上载方法末尾的return语句是该方法中唯一的return语句。

关于php - 未列出保留字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1172997/

10-12 04:10