error_reporting(E_ALL)不会产生错误

Sam*_*pta 37 php

这是我的PHP脚本 -

<?php
  error_reporting(E_ALL);
  echo('catch this -> ' ;. $thisdoesnotexist);
?>
Run Code Online (Sandbox Code Playgroud)

如果它被执行,显然应该显示一些东西.

我看到的只是一个空白页面.为什么error_reporting(E_ALL)不工作?

<?php
  ini_set("display_errors", "1");
  error_reporting(E_ALL);
  echo('catch this -> ' ;. $thisdoesnotexist);
?>
Run Code Online (Sandbox Code Playgroud)

也没帮助.我得到的只是一个空白页面.

我去过php.ini,并设置display_errors = Ondisplay_startup_errors = On.什么都没发生.

sec*_*tus 55

您的文件有语法错误,因此您的文件未被解释,因此设置未更改且您有空白页面.

您可以将文件分成两个.

的index.php

<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
include 'error.php';
Run Code Online (Sandbox Code Playgroud)

error.php

<?
echo('catch this -> ' ;. $thisdoesnotexist);
Run Code Online (Sandbox Code Playgroud)


dec*_*eze 9

该错误是一个解析错误.该解析器是把它扔经历的代码,同时,试图了解它.在解析阶段尚未执行任何代码.由于它尚未执行该error_reporting行,因此错误报告设置尚未更改.

您无法在具有语法错误的文件中更改错误报告设置(或实际上,执行任何操作).


som*_*som 9

在你的php.ini文件中检查display_errors.我认为它已经关闭了.

<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Run Code Online (Sandbox Code Playgroud)