関数名を動的に呼び出す必要があります。
$myFunction = isset($somecondition) ? "function1(100,100)" : "function(300,300)";
次に、メソッドを呼び出す必要があります
$myclass->$myFunction;
関数名を動的に呼び出す必要があります。
$myFunction = isset($somecondition) ? "function1(100,100)" : "function(300,300)";
次に、メソッドを呼び出す必要があります
$myclass->$myFunction;
このような文字列に関数呼び出しを格納することはできません。関数名とパラメーターを別々に格納することもできますが、単純なifステートメントを使用し、特定のパラメーターを使用していずれかのメソッドを呼び出す方がよいでしょう。
if($someCondition){
$myClass->function1(100, 100);
} else {
$myClass->function(300, 300);
}
他の方法は、関数名とパラメーターを変数に格納してを使用user_call_func_array()
することですが、上記のようなifステートメントが必要であるか、または他のオプションは、レミーの答えのように2つの3値ステートメントを使用してfunction1
、function
。上記のifステートメントで1つだけではなく、2つの3値ステートメントを処理しているという理由だけで、この方法は理想的とは言えません。
call_user_func_arrayメソッドを検索しています
call_user_func_array(
array($myClass, isset($somecondition) ? 'function1' : 'function'),
isset($somecondition) ? array(100, 100) : array(300, 300)
);
関数に名前を付けることはできないので、彼のコードにはもっと多くの問題があります;)
かっこが間違っています
$myclass->$myFunction();