<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Artikel und PHP Code irrelevant,Hier sind nur Beispiele vor der Trennung。</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello World!"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># existieren PHP In der bedingten Aussage,defined() Was sind die praktischen Anwendungsmethoden der Funktionen?</span></span><span>
existieren PHP In der Entwicklung,`</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()` Die Hauptfunktion einer Funktion besteht darin, festzustellen, ob eine Konstante definiert wurde。Sein Rückgabewert ist der Boolesche Typ:若常量已存existieren则返回 `</span><span><span class="hljs-literal">true</span></span><span>`,Ansonsten zurückkehren `</span><span><span class="hljs-literal">false</span></span><span>`。Aufgrund dieser Eigenschaft,existierenIn der bedingten Aussage使用 `</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()` Kann Entwicklern helfen, die Codelogik flexibler zu kontrollieren,避免重复定义常量或existieren未定义时使用常量导致Fehler。Das Folgende ist eine Kombination mehrerer gemeinsamer Szenarien, um seine Anwendungsmethode zu veranschaulichen。
</span><span><span class="hljs-comment">## 1. Verhindern Sie, dass Konstanten wiederholt definieren</span></span><span>
existieren大型项目中,Verschiedene Dateien können dieselben Konstanten definieren。passieren `</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()`,可以existieren定义之前先检测常量是否已经存existieren,Vermeiden Sie es, zu erscheinen PHP von“Konstanten sind definiert”Fehler。
```php
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'APP_ENV'</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'APP_ENV'</span></span><span>, </span><span><span class="hljs-string">'production'</span></span><span>);
}
</span></span>Auf diese Weise, egal wie viele Dateien der Code verwiesen wird, wird es keinen Konflikt geben.
In vielen Projekten werden Konstanten verwendet, um zu kontrollieren, ob der Debugging -Modus aktiviert ist. Das Kombinieren definierter () in bedingten Anweisungen kann sicherstellen, dass die Logik robuster ist.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'DEBUG'</span></span><span>) && DEBUG === </span><span><span class="hljs-literal">true</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL);
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>);
}
</span></span>Wenn die Debug -Konstante nicht definiert ist, wird die Debugging -Logik nicht eingegeben und die Standardeinstellungen werden beibehalten.
Beim Laden der Konfigurationsdatei können Sie bestätigen, ob die erforderlichen Konstanten über defined () existieren, um Programmausnahmen aufgrund fehlender Ausnahmen zu verhindern.
<span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'DB_HOST'</span></span><span>) || !</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'DB_USER'</span></span><span>)) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">'Unvollständige Datenbankkonfiguration,Bitte überprüfen Sie die Konfigurationsdatei。'</span></span><span>);
}
</span></span>Diese Art der Erkennung ist besonders wichtig, wenn Sie bereitstellen und online gehen.
Manchmal definieren wir eine Identitätskonstante oben in der Datei und erkennen dann, ob diese Konstante in anderen Dateien vorhanden ist, um ein doppelendes Laden zu vermeiden.
<span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'INIT_LOADED'</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'INIT_LOADED'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-comment">// Initialisierungscode,Zum Beispiel laden Sie die Konfiguration、Zeitzone einstellen usw.</span></span><span>
}
</span></span>Bei der Entwicklung von Multi-Umwelt können verschiedene Konstanten definiert werden, um die laufende Umgebung zu unterscheiden, und dann können verschiedene Logiken ausgeführt werden, indem bedingte Anweisungen mit definiert () kombiniert werden.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'ENV_DEV'</span></span><span>)) {
</span><span><span class="hljs-variable">$db_host</span></span><span> = </span><span><span class="hljs-string">'localhost'</span></span><span>;
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'ENV_TEST'</span></span><span>)) {
</span><span><span class="hljs-variable">$db_host</span></span><span> = </span><span><span class="hljs-string">'test-db-server'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$db_host</span></span><span> = </span><span><span class="hljs-string">'prod-db-server'</span></span><span>;
}
</span></span>Die Rolle der definierten () Funktion in bedingten Anweisungen spiegelt sich hauptsächlich in der Verhinderung wiederholter Definitionen, der Verbesserung der Code -Robustheit und der flexiblen Kontrolllogik wider. Es kann eine wichtige Rolle bei der konstanten Verwaltung, beim Debugging -Steuerelement oder bei der Konfigurationsüberprüfung spielen. Die rationale Verwendung von defined () kann den Code in komplexen Umgebungen robuster und einfacher zu verwalten.
<span></span>