-1

私は今日、すべての OOP がどのように機能するかについて考えていました。

そして、私は考えていました:特定のテキスト値を使用してメソッドが存在するかどうかを確認するのは素晴らしいことではないでしょうか?

したがって、テキスト function_name_in_text_format がある場合、メソッド function_name_in_text_format が存在するかどうかを確認するにはどうすればよいですか?

$$ を使用した解決策について聞いたことがありますが、実際の例を見つけることができませんでした

4

2 に答える 2

3

is_callable()関数を使用できます。

変数の内容を関数として呼び出せることを確認します。これにより、単純な変数に有効な関数の名前が含まれていること、または配列に適切にエンコードされたオブジェクトと関数名が含まれていることを確認できます。

名前が示すように使用できるfunction_exists()およびmethod_exists()関数もあります。

$$ を使用する方法は、変数変数として知られています。

可変変数は、変数の値を取り、それを変数の名前として扱います。

を使用する例を以下に示しますis_callable()

//
//  Simple variable containing a function
//

function someFunction() 
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Array containing a method
//

class someClass {

  function someMethod() 
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject, 'someMethod');

var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)

echo $callable_name, "\n";  //  someClass::someMethod

?> 
于 2012-07-10T22:13:39.737 に答える
2

それはリフレクションと呼ばれるものを通して可能です。

于 2012-07-10T22:12:54.350 に答える