Suche…


Variablen ausgeben

Mit der Funktion var_dump können Sie den Inhalt einer Variablen (Typ und Wert) für das Debugging var_dump .

Beispiel:

$array = [3.7, "string", 10, ["hello" => "world"], false, new DateTime()];
var_dump($array);

Ausgabe:

array(6) {
  [0]=>
  float(3.7)
  [1]=>
  string(6) "string"
  [2]=>
  int(10)
  [3]=>
  array(1) {
    ["hello"]=>
    string(5) "world"
  }
  [4]=>
  bool(false)
  [5]=>
  object(DateTime)#1 (3) {
    ["date"]=>
    string(26) "2016-07-24 13:51:07.000000"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(13) "Europe/Berlin"
  }
}

Fehler anzeigen

Wenn Sie möchten, dass PHP Laufzeitfehler auf der Seite display_errors , müssen Sie display_errors entweder in der php.ini oder mit der Funktion ini_set .

Sie können auswählen, welche Fehler angezeigt werden sollen, mit der Funktion error_reporting (oder in der ini), die E_* error_reporting akzeptiert, die mit bitweisen Operatoren kombiniert werden.

Je nach Einstellung von html_errors kann PHP Fehler im Text- oder HTML-Format html_errors .

Beispiel:

ini_set("display_errors", true);
ini_set("html_errors", false); // Display errors in plain text
error_reporting(E_ALL & ~E_USER_NOTICE); // Display everything except E_USER_NOTICE

trigger_error("Pointless error"); // E_USER_NOTICE
echo $nonexistentVariable; // E_NOTICE
nonexistentFunction(); // E_ERROR

Nur-Text-Ausgabe: (HTML-Format unterscheidet sich zwischen Implementierungen)

Notice: Undefined variable: nonexistentVariable in /path/to/file.php on line 7

Fatal error: Uncaught Error: Call to undefined function nonexistentFunction() in /path/to/file.php:8
Stack trace:
#0 {main}
  thrown in /path/to/file.php on line 8

ANMERKUNG: Wenn die Fehlerberichterstattung in php.ini deaktiviert ist und zur Laufzeit aktiviert wird, werden einige Fehler (z. B. Analysefehler) nicht angezeigt, da sie vor der Anwendung der Laufzeiteinstellung aufgetreten sind.

Mit error_reporting können Sie error_reporting die vollständige Verwendung von E_ALL während der Entwicklung E_ALL und die Anzeige mit display_errors in der Produktionsphase deaktivieren, um das Innere der Skripts auszublenden.

phpinfo ()

Warnung

phpinfo nur in einer Entwicklungsumgebung verwendet werden. phpinfo niemals Code mit phpinfo in einer Produktionsumgebung frei

Einführung

Es kann jedoch hilfreich sein, um die PHP-Umgebung (Betriebssystem, Konfiguration, Versionen, Pfade, Module), in der Sie arbeiten, zu verstehen, insbesondere wenn Sie einen Fehler suchen. Es ist eine einfache eingebaute Funktion:

phpinfo();

Es hat einen Parameter $what , wodurch die Ausgabe angepasst werden kann. Der Standardwert ist INFO_ALL , wodurch alle Informationen angezeigt werden. INFO_ALL Informationen werden üblicherweise während der Entwicklung verwendet, um den aktuellen Status von PHP anzuzeigen.

Sie können den Parameter INFO_* Konstanten zusammen mit bitweisen Operatoren übergeben, um eine benutzerdefinierte Liste INFO_* .

Sie können es im Browser ausführen, um ein schön formatiertes Detailbild zu erhalten. Es funktioniert auch in PHP-CLI, wo Sie es für eine einfachere Ansicht in less überspielen können.

Beispiel

phpinfo(INFO_CONFIGURATION | INFO_ENVIRONMENT | INFO_VARIABLES);

Daraufhin wird eine Liste mit PHP-Direktiven ( ini_get ), Umgebung ( $_ENV ) und vordefinierten Variablen $_ENV .

Xdebug

Xdebug ist eine PHP-Erweiterung, die Debugging- und Profilierungsfunktionen bietet.
Es verwendet das DBGp-Debugging-Protokoll.

Es gibt einige nette Funktionen in diesem Tool:

  • Stack-Spuren bei Fehlern
  • Maximaler Schachtelschutz und Zeitverfolgung
  • hilfreicher Ersatz der Standardfunktion var_dump() zur Anzeige von Variablen
  • Ermöglicht das Protokollieren aller Funktionsaufrufe, einschließlich der Parameter, und gibt Werte in verschiedenen Formaten an eine Datei zurück
  • Analyse der Codeabdeckung
  • Profiling-Informationen
  • Remote-Debugging (bietet eine Schnittstelle für Debugger-Clients, die mit ausgeführten PHP-Skripts interagieren)

Wie Sie sehen, ist diese Erweiterung perfekt für die Entwicklungsumgebung geeignet. Insbesondere die Remote-Debugging- Funktion kann Ihnen helfen, Ihren PHP-Code ohne zahlreiche var_dumps zu debuggen und einen normalen Debugging-Prozess wie in C++ oder Java verwenden.

Die Installation dieser Erweiterung ist normalerweise sehr einfach:

pecl install xdebug # install from pecl/pear

Und aktiviere es in deiner php.ini:

zend_extension="/usr/local/php/modules/xdebug.so"

In komplizierteren Fällen siehe diese Anleitung

Wenn Sie dieses Tool verwenden, sollten Sie Folgendes beachten:
XDebug ist nicht für Produktionsumgebungen geeignet

phpversion ()

Einführung

Bei der Arbeit mit verschiedenen Bibliotheken und den damit verbundenen Anforderungen ist es häufig erforderlich, die Version des aktuellen PHP-Parsers oder eines seiner Pakete zu kennen.

Diese Funktion akzeptiert einen einzelnen optionalen Parameter in Form des Erweiterungsnamens: phpversion('extension') . Wenn die betreffende Erweiterung installiert ist, gibt die Funktion eine Zeichenfolge mit dem Versionswert zurück. Wenn jedoch die Erweiterung nicht installiert ist, wird FALSE zurückgegeben. Wenn der Erweiterungsname nicht angegeben wird, gibt die Funktion die Version des PHP-Parsers selbst zurück.

Beispiel

print "Current PHP version: " . phpversion();
// Current PHP version: 7.0.8

print "Current cURL version: " . phpversion( 'curl' );
// Current cURL version: 7.0.8
// or
// false, no printed output if package is missing

Fehlerberichterstattung (beide verwenden)

// this sets the configuration option for your environment
ini_set('display_errors', '1');

//-1 will allow all errors to be reported
error_reporting(-1);


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow