由于我的提供商,我不得不在我的服务器上将PHP从5.3升级到5.5。我的网站停止了工作。我现在回到PHP 5.3。本地我正在使用MAMP和PHP 5.5进行测试并遇到同样的问题。
情况:
我有一个执行include_once("php/functions.php")
的index.php文件。它的工作原理是它返回true。
关于index.php文件的结尾我有一个php部分如下:
<?php
echo("<p>(1) before function call</p>");
echo outputFooter();
echo("<p>(4) after function call</p>");
?>
php / function.php文件中的PHP函数如下:
function outputFooter() {
echo("<p>(2) In the function</p>");
return("<p>(3) In the outputFooter function</p>");
}
输出为:
(1)在函数调用之前
显然PHP函数根本没有被调用! PHP 5.5中的任何想法导致了这个问题?
答案 0 :(得分:2)
将以下内容放在脚本的顶部:
error_reporting(E_ALL);
ini_set('display_errors', '1');
我的猜测是,在包含的文件中加载时会发生语法错误或致命的运行时错误。
答案 1 :(得分:1)
@ jtmanteo:非常感谢你的建议。它帮助我找到了问题的原因。它是在我试图打开的php文件中。我有一个过程调用传递对它的引用,如&amp; $ some_var。看起来好像它适用于PHP 5.3但不适用于PHP 5.5!所以include_once确实找到了php文件,但在阅读时它崩溃了。根据您的建议,我可以得到相应的错误消息。再次感谢!!
问题解决了!
答案 2 :(得分:0)
如果使用命令行,则可以运行:
php -l *
跨托管文件的目录。这将使用内置的PHP引擎来为文件提示任何会导致白屏的语法错误,尽管它不会发现运行时错误。您也可以运行:
php *
如果您的文件是自包含的,但如果您的脚本在运行时被框架调用,则可能会出现问题。