PHP のワークロードが増加すると、特定の変数を定義したかどうか、特定の定数を定義したかどうか、特定の関数を定義したかどうかなどを判断する必要が生じることがあります。定数を繰り返し定義すると、エラーが発生します。変数を繰り返し定義すると前の値が上書きされるため、これらの関数を理解しておく必要があります。
たとえば、starphp フレームワークでファイルを作成すると、コードは次のようになります:
<?phpecho "当前用户定义的常量";$user_constants = get_defined_constants(TRUE);print_r($user_constants['user']);echo "<br />";echo "当前引入的文件";$files = get_included_files();print_r($files);そしてブラウザに移動して URL: http://localhost/starshop/index.php
出力結果は次のようになります:
当前用户定义的常量Array ( [ROOT] => D:\MyApp\wamp\www\starshop [D] => \ [STAR] => D:\MyApp\wamp\www\starshop\star [CORE] => D:\MyApp\wamp\www\starshop\star\core [HOST] => localhost [APP] => D:\MyApp\wamp\www\starshop\app [LOG] => D:\MyApp\wamp\www\starshop\app\data\log [MODULE] => D:\MyApp\wamp\www\starshop\app\index [VIEW] => D:\MyApp\wamp\www\starshop\app\index\view ) 当前引入的文件Array ( [0] => D:\MyApp\wamp\www\starshop\index.php [1] => D:\MyApp\wamp\www\starshop\star\star.php [2] => D:\MyApp\wamp\www\starshop\star\core\config.php [3] => D:\MyApp\wamp\www\starshop\star\core\fun.php [4] => D:\MyApp\wamp\www\starshop\star\core\core.php [5] => D:\MyApp\wamp\www\starshop\star\core\control.php [6] => D:\MyApp\wamp\www\starshop\app\index\control\index.c.php [7] => D:\MyApp\wamp\www\starshop\app\index\view\index.php )もちろん、読者は私の starphp のソース コードを持っていませんが、心配しないでください。私はこれら 2 つの関数の機能をデモしているだけです。手元にあるフレームワークを使用できます。どのファイルと定義が導入されているかを実証し、どの定数が優れているかを確認します。
以下はこれらの関数の説明です:
get_defined_vars:获取用户定义的变量get_defined_functions:获取所有已定义的函数get_loaded_extensions:获取所有可用的模块get_extension_funcs($module_name):获取指定模块的可用函数get_defined_constants():获取所有常量get_declared_classes():获取已定义的类get_included_files():获取导入的文件