-1

私はPHPに存在する関数を使用していますが、それは私に戻ってきます:bool(false)。コーディングの構文エラーはどこにありますか?

<?php

class Test{

  public function moneydays(){

    return null;

  }

}
var_dump(function_exists('$moneydays'));
?>
4

3 に答える 3

2

コード例では、2つのエラーがあります。

  1. $moneydays存在しない
  2. Test::moneydays()メソッドです。関数ではありません。

正しいコードを持っていても#2を拡張するには、関数が定義されているかどうかだけが使用されているスコープを教えてくれるvar_dump(function_exists('moneydays'));ので、期待した結果は得られません。メソッドが存在するかどうかをテストするには、次を使用する必要があります。これは、クラスをチェックして、指定されたメソッドがあるかどうかを確認します。function_exists()method_exists()

于 2013-03-05T01:37:33.373 に答える
2

この場合、method_existsを使用する必要があります

method_exists('Test','moneydays');

echo method_exists('Test','moneydays') ? 'Yes' : 'No';
于 2013-03-05T01:38:27.023 に答える
0

手始めに、そこにある$べきではありません。ただし、さらに、クラス内で関数を見つけようとしているため、を使用する必要がありますmethod_exists

メソッドは静的ではないため、最初にクラスをインスタンス化してから、メソッドがあるかどうかを確認する必要があります。

$instance = new Test;
var_dump(method_exists($instance,"moneydays"));
于 2013-03-05T01:39:25.610 に答える