PHPでは、定義された()関数は、定数が定義されているかどうかを確認するための非常に実用的なツールです。定数は、定義後に変更できない不変の値です。変数とは異なり、定数は参照するためにドル記号$を必要としません。 PHPプログラムでは、通常、定数は構成アイテム、データベース接続情報、または変更されないその他の値を保存するために使用されます。定義された()関数を使用すると、定数を繰り返し定義することにより引き起こされるエラーを回避し、プログラムの実行の安定性を確保できます。
<span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ name :チェックする定数の名前。一定の名前は、文字列であり、ケースに敏感でなければなりません。
return値:定義()は、定数が定義されている場合にtrueを返します。それ以外の場合は、 falseを返します。
一定のsite_nameがあり、定義されているかどうかを確認するとします。コードの例は次のとおりです。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 定数が定義されているかどうかを確認します</span></span><span>
</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">'SITE_NAME'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"絶え間ない SITE_NAME 定義されています,値はです: "</span></span><span> . SITE_NAME;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"絶え間ない SITE_NAME 未定義"</span></span><span>;
}
</span><span><span class="hljs-comment">// 定义絶え間ない</span></span><span>
</span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'SITE_NAME'</span></span><span>, </span><span><span class="hljs-string">'My Awesome Site'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
上記の例では、定義された()が実行されたときに最初に定義された定義は定義されていないため、出力の結果は「定数定義ではありません」になります。 define()を使用して()を後で定義し、 defined()を再度実行すると、結果は「定義された定義済みで、値は私の素晴らしいサイトです」になります。
PHPの定数は、定義されると再定義できません。既存の定数を再度定義しようとすると、PHPはエラーを投げます。したがって、定義された()関数を使用すると、定数を繰り返し定義することによって引き起こされるエラーを回避できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 先定数が定義されているかどうかを確認します</span></span><span>
</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__">define</span></span><span>(</span><span><span class="hljs-string">'DB_HOST'</span></span><span>, </span><span><span class="hljs-string">'localhost'</span></span><span>);
}
</span><span><span class="hljs-keyword">echo</span></span><span> DB_HOST;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
この例では、 DB_HOST定数は、まだ定義されていない場合にのみ定義されます。これにより、プログラムが複数回実行されていても、定数の定義が繰り返されるため、エラーは発生しません。
構成項目を確認する:構成ファイルでは、通常、データベース接続情報、アプリケーション名などを保存するために複数の定数を定義します。定義済み()を使用して、構成アイテムが繰り返し定義されていないことを確認します。
競合を避ける:複数のモジュールまたはライブラリを開発する場合、同じ名前の定数を定義する複数のファイルがある場合があります。定義済み()を使用して、定数が既に存在するかどうかを確認できますが、定数競合によって引き起こされる問題を防ぐことができます。
制御フロー:特定の条件下では、特定の操作を実行するかどうかを制御することができます。定数が定義されているかどうかを確認することにより、さまざまな手続き上の決定を下すことができます。
PHPの定義()関数は、開発者が定数が定義されているかどうかを確認するのに役立つ非常に便利なツールです。定義済み()を合理的に使用することにより、特に大規模なプロジェクトまたはマルチモジュールシステムで、コードをより安定して堅牢にすることができ、コードの保守性と信頼性を効果的に改善できます。