19 Stimmen

So deaktivieren Sie E_STRICT

Ich muss E_STRICT ausschalten. Ich habe error_reporting = E_ALL & ~E_STRICT in meiner php.ini, aber es scheint ignoriert zu werden. Ich habe dies in meinem Code versucht:

ini_set('error_reporting', E_NOTICE);

Nichts!

Bitte um Hilfe.

10voto

Dinesh Nagar Punkte 778

Versuchen Sie dies.

error_reporting(E_ALL ^ E_STRICT);

Dadurch werden alle Fehler außer E_STRICT gemeldet.

5voto

stofl Punkte 2908

Wenn Sie einen eigenen Fehlerhandler haben (suchen Sie in Ihrem Code nach set_error_handler ), dann wird die error_reporting Konfigurationswert wird ignoriert:

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

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

Auch das Entfernen E_STRICT del error_reporting config kann fehlschlagen, wenn der Fehler in der gleichen Datei auftritt, in der error_reporting(...) (oder ini_set('error_reporting, ...') ) genannt wird.

2voto

luke Punkte 120

Sie erwähnten, dass Sie ein Framework verwenden (es wäre gut zu wissen, welches), jedenfalls können Sie so etwas in die allererste index.php einfügen:

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

Aber stellen Sie sicher, dass Sie auf der ersten index.php sind, die aufgerufen wird, d.h. die allererste im Stapel, für bestimmte Rahmen, die Ihnen einige Schmerzen ersparen würde.

Andere Sache: die meisten der Frameworks haben ihre eigene Konfigurationsdatei, um Produktionssoftware VS zu adressieren. Entwicklungssoftware und sie haben ihre eigene Art und Weise, Dinge zu tun, so würde ich von dort beginnen....have einen Blick auf die Docs und finden Sie heraus, wenn es etwas gibt, die Sie ändern müssen ... es könnte eine super einfache Änderung auf eine Konfigurationsdatei höchstwahrscheinlich sein.

1voto

Kawuma Abel Punkte 21

Ich war dabei, CMS Made Simple zu installieren, als ich auf diesen Fehler stieß, aber hier ist, wie ich ihn behoben habe:

1) Öffnen Sie Ihre php.ini-Datei mit einem Ihrer Lieblingseditoren: Notepad, Notepad++ oder Dreamweaver.

2) Drücken Sie ctrl+f, um das Dialogfeld "Suchen" zu öffnen.

3) Geben Sie E_STRICT ein und klicken Sie auf ok, um zur E_STRICT-Zeile zu gelangen. Es gibt mehrere E_STRICT-Stoffe, 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

fehler_berichterstattung \= E_ALL Hier ist der Wert ohne das ";" das, was zählt, also habe ich ihn einfach auf gelöscht:

fehler_berichterstattung \= (löschen) und entfernte die E_ALL Ich habe die Datei gespeichert und alle Dienste neu gestartet, und alles funktionierte einwandfrei. Ich hoffe, das funktioniert auch bei Ihnen.

-2voto

Bogdan Punkte 693
error_reporting(E_ALL & ~E_STRICT);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X