2010-05-17 72 views
16

我需要關閉E_STRICT。我在我的php.ini中有error_reporting = E_ALL &〜E_STRICT,但它似乎被忽略。我在我的代碼中試過這個:如何禁用E_STRICT

ini_set('error_reporting', E_NOTICE); 

什麼都沒有!

請幫忙。

+0

你確定你的php.ini文件沒有被其他地方覆蓋嗎?有更多本地版本的php.ini文件嗎? – 2010-05-17 17:00:38

+0

而不是關閉錯誤,你應該實際上寧願修復你的代碼,以便它甚至不會拋出任何東西。 – poke 2010-05-17 17:08:16

+0

poke:我知道謝謝,但我也有一個框架,該應用程序正在生產中,並且可以,我確實沒有時間! – rtacconi 2010-05-18 09:34:42

回答

8

試試這個。

error_reporting(E_ALL^E_STRICT); 

這將報告所有的錯誤,除了E_STRICT

-2
error_reporting(E_ALL & ~E_STRICT); 
+0

'|'將啓用'E_STRICT'。這個問題想要**禁用** ....... – Pacerier 2015-08-28 06:10:54

2

你提到你使用一個框架(將是很好的知道哪一個),反正你可以像這樣在第一個指數添加的東西.PHP:

error_reporting(E_ERROR | E_WARNING | E_PARSE); 
ini_set('display_errors', 'On'); 

但要確保你在被調用,在棧意味着第一個,對於某些框架,爲您節省一些痛苦第一的index.php。

其他事情:大多數框架都有自己的配置文件來解決生產軟件VS.開發軟件,他們有自己的做事方式,所以我會從那裏開始....看看文檔,看看有什麼需要改變的地方...它可能是一個超級簡單的改變最有可能的配置文件。

5

如果你有自己的錯誤處理程序(搜索你爲set_error_handler的代碼),那麼error_reporting配置值將被忽略:

要記住,標準的PHP錯誤處理程序完全繞過這一點很重要對於由error_types指定的錯誤類型,除非回調函數返回FALSE。 error_reporting()設置將不起作用並且您的錯誤處理程序將被調用,但是您仍然能夠讀取error_reporting的當前值並正確執行。特別值得注意的是,如果導致錯誤的語句由@ error-control操作符預置,則此值將爲0。

http://php.net/manual/en/function.set-error-handler.php

同樣來自error_reporting配置去除E_STRICT可能會失敗,如果在error_reporting(...)(或ini_set('error_reporting, ...'))被稱爲相同的文件中發生錯誤。

+0

+1,因爲這是對我最有幫助的答案。我在CodeIgniter中創建了一個名爲ExceptionHook的鉤子類,它調用了這樣的錯誤處理程序: 'set_error_handler(array('ExceptionHook','exception_error_handler'),E_ALL);'如果我將E_STRICT傳遞給第二個參數,失敗,所以我需要關閉E_STRICT錯誤。 – DavidHyogo 2014-03-14 10:35:23

+0

同意,最有幫助的一個。互聯網充滿了^ /〜E_STRICT的東西,但我的問題是在error_handler ..酷! – 2015-07-21 12:19:24

1

我安裝CMS變得簡單,當我遇到了這個錯誤,但這裏是我來過它:

1)使用任何你喜歡的編輯器打開php.ini文件,記事本,記事本++或Dreamweaver中。

2)按ctrl + f啓動查找對話框。3)鍵入E_STRICT並點擊確定跳轉到E_STRICT行,出現幾個E_STRICT的東西,但找一個這樣的設置;

共同的社會價值觀:

E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.) 
    E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices) 
    E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) 
    E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.) 
Default Value: E_ALL & ~E_NOTICE 
Development Value: E_ALL | E_STRICT 
Production Value: E_ALL & ~E_DEPRECATED 
http://php.net/error-reporting 

使用error_reporting = E_ALL,這裏出的值 「;」是最重要的,所以我只是把它清除爲:

使用error_reporting =(刪除),除去E_ALL,並保存的文件,我重新啓動所有的服務,一切工作正常。 希望也適合你!