2010-05-17 28 views
16

Ich muss E_STRICT ausschalten. Ich habe error_reporting = E_ALL & ~ E_STRICT in meiner php.ini aber es scheint ignoriert zu werden. Ich versuchte dieses in meinem Code:So deaktivieren Sie E_STRICT

ini_set('error_reporting', E_NOTICE); 

Nichts!

Bitte helfen.

+0

Sind Sie sicher, dass Ihre php.ini-Datei nicht anderswo überschrieben wird? Gibt es eine lokalere Version der Datei php.ini? –

+0

Anstatt Fehler zu deaktivieren, solltest du eigentlich lieber deinen Code reparieren, damit er gar nichts wirft. – poke

+0

poke: Ich weiß das danke, aber ich habe auch ein Framework, die App ist in Produktion und ist in Ordnung und ich mache es hab keine zeit! – rtacconi

Antwort

8

versuchen Sie dies.

error_reporting(E_ALL^E_STRICT); 

Dadurch werden alle Fehler außer E_STRICT berichten

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

'|' aktiviert 'E_STRICT'. Die Frage will ** deaktivieren ** es ....... – Pacerier

2

Sie erwähnten Sie einen Rahmen verwenden (wäre gut zu wissen, was man) irgendwie, das Sie so etwas wie dies auf den ersten Index hinzufügen .php:

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

Aber stellen Sie sicher, dass Sie auf dem ersten index.php sind, die, was bedeutet, die erste in dem Stapel für bestimmte Rahmen aufgerufen wird, das Sie etwas Schmerz würde sparen.

Andere Sache: die meisten der Frameworks haben ihre eigene Konfigurationsdatei, um Produktionssoftware VS zu adressieren. Entwicklungssoftware und sie haben ihre eigene Art, Dinge zu tun, also würde ich von dort aus beginnen .... schau dir die Dokumentation an und finde heraus, ob da etwas ist, was du verändern musst ... es könnte eine super einfache Änderung sein eine Konfigurationsdatei höchstwahrscheinlich.

5

Wenn Sie eine eigene Fehlerbehandlung haben, dann wird der error_reporting Konfigurationswert wird ignoriert (der Code für set_error_handler suchen):

Es ist wichtig, sich daran zu erinnern, dass der Standard-PHP-Fehler-Handler vollständig umgangen wird für die Fehlertypen, die durch error_types angegeben sind, es sei denn, die Callback-Funktion gibt FALSE zurück. error_reporting() Einstellungen haben keine Auswirkungen und Ihr Fehlerhandler wird unabhängig aufgerufen werden - jedoch können Sie immer noch den aktuellen Wert von error_reporting lesen und entsprechend handeln. Beachten Sie, dass dieser Wert 0 ist, wenn die Anweisung, die den Fehler verursacht hat, vom Operator @ error-control vorangestellt wurde.

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

Auch E_STRICT aus dem error_reporting Config Entfernen könnte fehlschlagen, wenn der Fehler in der gleichen Datei auftritt, wo error_reporting(...) (oder ini_set('error_reporting, ...')) genannt wird.

+0

+1, weil dies die Antwort war, die mir am meisten half hier. Ich habe eine Hook-Klasse namens ExceptionHook in CodeIgniter erstellt, die einen solchen Fehlerhandler aufruft: 'set_error_handler (array ('ExceptionHook', 'exception_error_handler'), E_ALL);' Wenn ich E_STRICT an das zweite Argument übergebe, eine Schlüssel-Legacy-Bibliothek schlägt fehl, also musste ich E_STRICT Fehler abschalten. – DavidHyogo

+0

stimme zu, am hilfreichsten. Das Internet ist voll von ^/~ E_STRICT Dinge, aber mein Problem war in error_handler .. cool! –

1

Ich war die Installation von CMS Made Simple, wenn ich in dieser Fehler lief aber hier ist, wie ich es über kam:

1) Öffnen Sie die Datei php.ini alle Ihre Lieblings-Editoren, Notizblock, Notizblock ++ oder Dreamweaver.

2) Drücken Sie Strg + F, um das Dialogfeld Suchen zu starten.

3) Geben Sie E_STRICT ein und klicken Sie auf OK, um zur Zeile E_STRICT zu springen, dort mehrere E_STRICT Stuff, aber suchen Sie nach einem mit dieser Art von Einstellung;

Gemeinsame Werte:

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, hier der Wert mit aus dem ";" kommt es so zu ich klären gerade:

error_reporting = (löschen) und entfernt die E_ALL, und die Datei gespeichert haben, ich alle Dienste neu gestartet, und alles hat gut funktioniert. Hoffe, dass auch für Sie funktioniert !.

Verwandte Themen