私はPHPに存在する関数を使用していますが、それは私に戻ってきます:bool(false)。コーディングの構文エラーはどこにありますか?
<?php
class Test{
public function moneydays(){
return null;
}
}
var_dump(function_exists('$moneydays'));
?>
私はPHPに存在する関数を使用していますが、それは私に戻ってきます:bool(false)。コーディングの構文エラーはどこにありますか?
<?php
class Test{
public function moneydays(){
return null;
}
}
var_dump(function_exists('$moneydays'));
?>
コード例では、2つのエラーがあります。
$moneydays
存在しないTest::moneydays()
メソッドです。関数ではありません。正しいコードを持っていても#2を拡張するには、関数が定義されているかどうかだけが使用されているスコープを教えてくれるvar_dump(function_exists('moneydays'));
ので、期待した結果は得られません。メソッドが存在するかどうかをテストするには、次を使用する必要があります。これは、クラスをチェックして、指定されたメソッドがあるかどうかを確認します。function_exists()
method_exists()
この場合、method_existsを使用する必要があります
method_exists('Test','moneydays');
例
echo method_exists('Test','moneydays') ? 'Yes' : 'No';
手始めに、そこにある$
べきではありません。ただし、さらに、クラス内で関数を見つけようとしているため、を使用する必要がありますmethod_exists
。
メソッドは静的ではないため、最初にクラスをインスタンス化してから、メソッドがあるかどうかを確認する必要があります。
$instance = new Test;
var_dump(method_exists($instance,"moneydays"));