Heim  >  Artikel  >  Backend-Entwicklung  >  Bei der Verwendung von PHP-Konstanten müssen einige Punkte beachtet werden

Bei der Verwendung von PHP-Konstanten müssen einige Punkte beachtet werden

伊谢尔伦
伊谢尔伦Original
2017-06-29 10:41:061433Durchsuche

Konstante enthält alphanumerische Zeichen und Unterstriche. Als Konstantennamen sind Zahlen zulässig. Alle Buchstaben in Konstantennamen müssen großgeschrieben werden. Klassenkonstanten müssen über const als Mitglieder der Klasse definiert werden. Von globalen Konstanten, die mit define definiert werden, wird dringend abgeraten.

Warum sollten Sie Konstanten in PHP mit Vorsicht verwenden?

Zend Framework-Dokumentation schreibt: Konstanten enthalten alphanumerische Zeichen und Unterstriche, und Zahlen sind als Konstantennamen zulässig. Alle Buchstaben in Konstantennamen müssen großgeschrieben werden. Klassenkonstanten müssen über „const“ als Mitglieder der Klasse definiert werden, und von der Verwendung von „define“ definierten globalen Konstanten wird dringend abgeraten.

Warum gibt es als offizielles PHP-Framework eine solche Anforderung?

Lassen Sie es uns gemeinsam analysieren.

1. Define ist anfällig für unerwartete Fehler

PHP-Konstanten können nach ihrer Definition nicht geändert oder erneut zugewiesen werden. Aber was passiert, wenn es erneut vergeben wird?

<?php
 define(&#39;C&#39;, 12345);
 define(&#39;C&#39;, 123);
?>

Dieser Code meldet einen Hinweisfehler. Die Konsequenz ist: Wenn andere Konstanten mit demselben Namen definieren, bevor Sie es definieren, wissen Sie möglicherweise nicht wirklich, was der Wert darin ist.

2. Wie kann man feststellen, ob eine PHP-Konstante definiert ist? Die Beurteilungsmethode kann leicht falsch geschrieben werden

<?php
 define(&#39;C&#39;, 12345);
 // 错误方法1,经常犯
 if (isset(C)){……}
 // 错误方法2,经常犯
 if (defined(C)){……}
 // 正确方法
 if (defined(&#39;C&#39;)){……}
?>

3. Geringe Ausführungseffizienz

<?php
  define(&#39;FORUM_THEME&#39;,$forum[&#39;theme&#39;]); 
  $this->display(&#39;/&#39;.FORUM_THEME.&#39;@Public:login&#39;); 
  // 系统会从整个执行流程中查找FORUM_THEME
?>

Da PHP bei der Verarbeitung von Konstanten mehrere Suchvorgänge durchführen muss, ist die Effizienz gering.

Zusammenfassung: Das Problem mit PHP-Konstanten besteht darin, dass die Methode von PHP zum Umgang mit Konstanten zu locker ist. Wenn sie strenger sein kann, werden viele Probleme vermieden. Verwenden Sie im tatsächlichen Prozess keine Konstanten, wenn Sie Variablen verwenden können, da Variablen effizienter und bequemer zu verwenden sind.

Wenn Sie also Konstanten oder Klassenvariablen verwenden müssen, können Sie die folgende Methode verwenden:

<?php
 class foo {
  const WEBSITE = "www.zhuyinghao.com";
  protected $_forum_theme;
  function name()
  {
    echo WEBSITE;
    $this->_forum_theme = $forum[&#39;theme&#39;];
  }
  function displace() 
  {
    echo $this->_forum_theme;
  }
 }
?>

Der Effekt, wenn der Klassenname und die Funktion denselben Namen haben

In PHP 4 muss der Konstruktor einer Klasse mit dem Klassennamen identisch sein. Der Konstruktorname der Unterklasse ist derselbe Der Name der Unterklasse wird vom Konstruktor der übergeordneten Klasse nicht automatisch implementiert. Um den Konstruktor der übergeordneten Klasse in einer Unterklasse auszuführen, müssen Sie eine Anweisung ähnlich der folgenden ausführen:

$this->[Konstruktorname der übergeordneten Klasse ()]

In PHP 5.0 oder höher Hier wird einheitlich construction() als Konstruktor verwendet, es ist jedoch weiterhin mit den Definitionsregeln des Konstruktors in Version 4.0 kompatibel. Wenn sowohl der 4.0-Konstruktor als auch die Funktion „construct()“ definiert sind, hat die Funktion „construct()“ Vorrang.

Verwenden Sie PHP EOL, um /r/n für Zeilenumbrüche zu ersetzen.

Zeilenumbrüche werden häufig beim Schreiben von Programmen verwendet. Verwenden Sie für Zeilenumbrüche die in PHP integrierte Konstante PHP_EOL.

Ein kleiner Zeilenumbruch, der auf verschiedenen Plattformen unterschiedliche Implementierungen hat. In der Unix-Welt wird n verwendet, um Zeilenumbrüche zu ersetzen, aber um den Unterschied widerzuspiegeln, verwendet Windows rn. Interessanter ist, dass r auf dem Mac verwendet wird. Daher verwendet die Unix-Serie n, die Windows-Serie rn und der Mac r.

Daher wird das System je nach Plattformsystem in unterschiedliche Zeilenumbrüche konvertieren. Wenn Sie die Zeile im Browser umbrechen möchten, müssen Sie die Variable PHP_EOL verwenden, um die Zeile umzubrechen

Das obige ist der detaillierte Inhalt vonBei der Verwendung von PHP-Konstanten müssen einige Punkte beachtet werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn