2011-11-20 15 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