0

由于我的提供商,我不得不在我的服务器上将 PHP 从 5.3 升级到 5.5。然后我的网站停止工作。我现在回到 PHP 5.3。在本地,我正在使用 MAMP 和 PHP 5.5 进行测试,并且遇到了同样的问题。

情况:

  1. 我有一个 index.php 文件include_once("php/functions.php")。它在返回 true 时工作。

  2. 关于文件 index.php 的结尾,我有一个 php 部分,如下所示:

    <?php
        echo("<p>(1) before function call</p>");
        echo outputFooter();
        echo("<p>(4) after function call</p>");
    ?>
    
  3. 文件 php/function.php 中的 PHP 函数如下:

    function outputFooter() {
       echo("<p>(2) In the function</p>");
       return("<p>(3) In the outputFooter function</p>");
    }
    
  4. 输出是:

    (1) 函数调用前

所以很明显PHP函数根本没有被调用!任何想法 PHP 5.5 中导致此问题的原因是什么?

4

3 回答 3

2

将以下内容放在脚本的顶部:

error_reporting(E_ALL);
ini_set('display_errors', '1');

我的猜测是在包含的文件中加载时发生语法错误或致命的运行时错误。

于 2014-06-04T22:54:13.367 回答
1

@jtmanteo:非常感谢您的建议。它帮助我找到了问题的原因。它在我试图打开的 php 文件中。我有一个过程调用传递对它的引用,例如 &$some_var。看起来好像它适用于 PHP 5.3 但不适用于 PHP 5.5!所以 include_once 确实找到了 php 文件,但它在读取它时崩溃了。根据您的建议,我可以获得相应的错误消息。所以再次感谢!!

问题解决了!

于 2014-06-05T22:53:10.313 回答
0

如果使用命令行,则可以运行:

php -l *

跨您托管文件的目录。这将使用内置的 PHP 引擎来检查文件是否存在任何会导致白屏的语法错误,尽管它不会找到运行时错误。您还可以运行:

php *

如果您的文件是自包含的,但如果您的脚本在运行时由框架调用,则可能会出现问题。

于 2015-02-27T20:15:33.307 回答