PHP 開発を行っているときに、サーバーの関連構成を変更できず、サーバーの特定の機能が有効になっているかどうかがわからない状況に遭遇した場合、特定の特殊な機能を直接使用すると、プログラムで次のようなエラーが報告されます。 curl_init などのシステム関数として。サーバーがcurl関連サービスを有効にしていない場合、curlシリーズ関数を直接使用すると、「未定義関数curl_init()への呼び出し...」などのエラーが報告されます。
では、これが起こった場合はどうすればよいでしょうか?多くのことを行うには 1 つの方法だけではありません。いくつかの方法が機能しない場合は、別の方法を使用することもできます。ここでは、あるメソッドが存在するかどうかを判断する問題が必要になります。そのメソッドが存在しない場合は、別のメソッドを使用します。
ここでは、関数、クラス、クラス内のメソッドが存在するかどうかを確認する方法の概要を示します。
(1) PHP はシステム関数が存在するか、自分で記述した関数が存在するかを判定します
bool function_exists ( string $function_name ) は、関数が定義されているかどうかを判断します。例:
if(function_exists('curl_init')){ curl_init(); }else{ echo 'not function curl_init'; }
(2) PHP はクラスが存在するかどうかを判断します
bool class_exists ( string $class_name [, bool $autoload = true ] ) は、クラスが定義されているかどうかを確認します。定義されている場合は true を返す必要があり、そうでない場合は false を返します。例:
if(class_exists('MySQL')){ $myclass=new MySQL(); }
(3) PHP はクラス内のメソッドが定義されているかどうかを判断します
bool method_exists (mixed $object , string $method_name ) クラスのメソッドが存在するかどうかを確認します。例:
$directory=new Directory; if(!method_exists($directory,'read')){ echo '未定义read方法!'; }