defineとdefinedの違いについて
1468 ワード
1.defineは定数を定義し、定数もグローバル範囲です.役割ドメインを管理することなく、スクリプトの任意の場所で定数にアクセスできます.定数が定義されると、次のように定義を変更または取り消すことはできません.
define("path","root/www/web")、defineは定数の値root/www/web
2.definedは定数が定義されているかどうかを検出するために使用され、定数が存在する場合はtrueを返し、そうでない場合はfalseを返します.
Yii中
上記のコードは次のようなものです.
明らかに最初のコードはもっと簡潔で分かりやすい.
上段コードの「or」の使い方について:
1.論理演算の演算順序は左から右へ2.or演算子の左結合性3.or演算では、演算時に値が真である場合、式全体が真であり、後に上記の3つの要素を演算する必要はなく、or左側の関数が正常に動作している場合(偽ではない値を返す)、後の関数は実行されませんここでorのこの特性を利用してdie(関数を終了して出力する)をここに使用し、関数異常を巧みに実現してエラーを報告する機能
3.isset()変数が定義されているかどうかを判断する
4.function_existsは関数が定義されているかどうかを判断します
5.file_existsはファイルが存在するかどうかを判断します
define("path","root/www/web")、defineは定数の値root/www/web
2.definedは定数が定義されているかどうかを検出するために使用され、定数が存在する場合はtrueを返し、そうでない場合はfalseを返します.
if(defined("path")){
echo"true";
}else{
echo "false";
}
Yii中
defined('YII_DEBUG') or define('YII_DEBUG', true);
上記のコードは次のようなものです.
if (!defined('YII_DEBUG')) { define('YII_DEBUG', true); }
明らかに最初のコードはもっと簡潔で分かりやすい.
上段コードの「or」の使い方について:
1.論理演算の演算順序は左から右へ2.or演算子の左結合性3.or演算では、演算時に値が真である場合、式全体が真であり、後に上記の3つの要素を演算する必要はなく、or左側の関数が正常に動作している場合(偽ではない値を返す)、後の関数は実行されませんここでorのこの特性を利用してdie(関数を終了して出力する)をここに使用し、関数異常を巧みに実現してエラーを報告する機能
3.isset()変数が定義されているかどうかを判断する
if(isset($var)) {
print "This var is set set so Iwill print.";
}
4.function_existsは関数が定義されているかどうかを判断します
if(function_exists('date_default_timezone_set'))//
{
date_default_timezone_set("Asia/Chongqing");
}
5.file_existsはファイルが存在するかどうかを判断します