2011-11-20 55 views
1

使用PHP ini_set()适用于error_reporting的正确方法是什么?它是通过使用引号:使用ini_set()的正确方法

ini_set('error_reporting', 'E_ALL'); 

或不带引号:

ini_set('error_reporting', E_ALL); 

当我使用一个带引号的,我site_errors.log文件没有得到填充。但是当我使用一个没有引号我的site_errors.log文件得到更新就好了。这是我的PHP文件是什么样子:

// my php file 
ini_set('display_errors', 'Off'); 
ini_set('error_reporting', E_ALL); 
ini_set('log_errors', 'On'); 
ini_set('error_log', 'site_errors.log'); 
+1

这是一个问题,当你没有问题,并已给自己的答案已经:)? – markus

+0

原因:E_ALL是一个PHP常量,因此必须写入不带引号。 – markus

+0

为什么不使用'error_reporting()'函数? –

回答

4

不含引号。 E_ALL是一个预先定义的PHP常数的

define('E_ALL', some_value_here); 

一旦你把它周围报价基本的结果,它不再是一个常数,PHP将其视为普通的字符串。

试试这个:

$x = E_ALL; // no quotes 
$y = 'E_ALL'; // with quotes 
echo "without: $x with: $y"; 

的 “无” 版本将是一个数(2^31-1),而 “与” 版将文字文本E_ALL