Frage

Was sind die Best Practices für die Verwendung von PHP Magic Konstanten sind, wie __LINE__, __FILE__, __FUNCTION__, __CLASS__ und __METHOD__?

Zum Beispiel habe ich Gebrauch __LINE__ und __CLASS__ die SQL-Fehler wie folgt zu finden:

$result = mysql_query($query)
or die("Error SQL line ".__LINE__ ." class ".__CLASS__." : ".mysql_error());

Ist das eine akzeptable Praxis?

War es hilfreich?

Lösung

Die Praxis Sie zeigen zwei Mängel auf:

  • Sie sind nicht auf die Datei zeigt der Fehler auftritt, in - Sie haben müsste eine sehr strenge Dateistruktur, die Klassen-Dateien 1 abbildet: 1 für diese nützlich sein

  • __CLASS__ zeigen Ihnen das falsche Ergebnis, wenn der Fehler in einer geerbten Klasse auftritt. Verwenden get_class($this) die tatsächliche aktuelle Klasse zu erhalten.

Other than that, ist es, diese Konstanten durchaus akzeptabel. Beachten Sie, dass

  • __FUNCTION__ und __CLASS__ wurden in PHP 4.3

  • hinzugefügt
  • __METHOD__ verfügbar ist seit PHP 5.0.0

  • __DIR__ und __NAMESPACE__ sind seit PHP 5.3 zur Verfügung.

docs

Andere Tipps

Der Zweck für diese Konstanten ist Debugging und Protokollierung. Das ist genau das, was Sie tun.

__FILE__ kann auch für die relative Dateipfade verwendet werden (z dirname(__FILE__)).

Der einzige Rat, den ich geben kann, ist, dass nicht alle magischen Konstanten definiert sind. Also, wenn im Zweifelsfall Verwendung if(defined('__MAGIC_CONSTANT__'))

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top