今天我在我们的一些 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。突然间一切都正常了。 “上传”不在 PHP reserved words 的列表中.有人知道为什么名为“上传”的类函数会失败吗?
最佳答案
确保上传方法末尾的返回语句是该方法中唯一的返回语句。
关于php - 未列出的保留字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1172997/