2

在这里的开发服务器上,一个设置已被更改,这使得任何 PHP 错误(任何级别)仅输出错误消息而没有其他内容。为了说明我的意思,这里有一个重现错误的脚本:

<?php
$array = array('a');
echo "Hello world";
echo $array[1];
echo $array[2];
echo "Goodbye world";
?>

我对此的期望是“Hello world”,然后是两个 PHP 通知说数组中有一个未定义的偏移量,然后是“再见世界”。我实际看到的是这样的:

PHP Notice:  Undefined offset:  1 in /path/to/myfile.php on line 4
PHP Notice:  Undefined offset:  2 in /path/to/myfile.php on line 5

……没有别的了。(另请注意,它是这样的纯文本,而不是 HTML)。当然,我可以设置error_reporting(0),但是我看不到任何错误。

有谁知道什么 PHP 设置会控制这个?

4

2 回答 2

1

我的猜测是输出缓冲已打开。尝试:

<?php
$array = array('a');
echo "Hello world";
ob_flush();
echo $array[1];
echo $array[2];
echo "Goodbye world";
?>
于 2009-10-22T02:12:46.887 回答
0

您需要关闭警告,并获得致命错误。这应该这样做:

错误报告(E_ERROR | E_WARNING | E_PARSE);

或这个:

错误报告(E_ERROR | E_PARSE);

错误报告方法在这里取一个整数,管道字符按位或将它们的底层整数值组合在一起,以实现传递给函数的最终整数。

http://74.125.155.132/search?q=cache:QvgitR0nX34J:php.net/manual/en/function.error-reporting.php+php+fatal+error+reporting&cd=1&hl=en&ct=clnk&gl=us

于 2009-10-22T03:25:53.353 回答