【问题标题】:PHP return doesn't work on Ubuntu [closed]PHP返回在Ubuntu上不起作用[关闭]
【发布时间】:2017-06-27 05:47:23
【问题描述】:

我们今天遇到了一个令人难以置信的问题.. 代码是在 Phalcon 框架上用 PHP 5.6 编写的。我的同事无法运行我的代码,因为当我从控制器操作方法(用于 Ajax 请求)编写 return 时,他得到了一个完整的视图,而不是我尝试返回的 json 对象。 然而,当我们使用die()exit() 时(它不会像return 那样返回给调用者,但在action 方法中并不重要),一切都会按预期返回。 我也在运行 Debian 8.8,他在运行 Ubuntu。我们俩都在使用 NetBeans 8.2

【问题讨论】:

  • 您的代码似乎有问题。但是,除非我们有code or information that can reproduce the problem,否则我们无能为力。否则,我们只是在盲目猜测。
  • 代码在我的机器上完美运行。例如public function testAction() { return json_encode('some stuff'); } 不会在我的同事机器上返回 Ajax 请求的对象。它将返回整个视图。
  • netbeans 是您的 IDE,与您实际运行代码无关。
  • 即使在不同的操作系统上也不相关?
  • 在 Phalcon 论坛forum.phalconphp.com 上打开这个问题,我们会确定它的排序(社区)

标签: php ubuntu netbeans debian phalcon


【解决方案1】:

当您拨打die()exit() 时,一切都会停止。

来自 PHP 手册:

(PHP 4, PHP 5, PHP 7)
exit — Output a message and terminate the current script

这包括框架。听起来您可能做了类似回显 json 并期望它只输出 json 的操作。我没有使用过 Phalcon,但许多框架在呈现页面之前都有自己的一系列函数和脚本要经过。因此,通过调用 return,框架的脚本开始工作,构建一个完整的视图并输出到浏览器,你的 JSON 可能被埋在里面的某个地方。

另一方面,通过调用exit(),一切都停在那里,不再运行框架中的渲染函数。

了解您的框架并进行调整,希望对您有所帮助。

【讨论】:

  • 感谢您的回答。框架不是问题,但兼容性是问题。我不完全确定应该归咎于框架,因为它在我的机器上运行良好。
猜你喜欢
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多