php - 未列出的保留字?

标签 php return-value

今天我在我们的一些 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/

相关文章:

c - 在 C 中返回局部静态

php - 根据表数据有条件地执行SQ​​L查询/语句

javascript - PHP回显问题

spring-mvc - 从 spring mvc Controller 方法返回 null

java - 在递归方法中返回值是如何工作的? [Java]

c# - 在编译时更改返回类型

javascript - 如何检索通过ajax从 Controller 发送到 View 的数组?

php - 在 Woocommerce 3+ 中保存并显示订单自定义元数据

php - Laravel 连接被拒绝错误

javascript - 如何格式化 datetimepicker 可见值