デフォルトのパラメーター値を持つcreate_function?
-
02-10-2019 - |
質問
わかりました、私は使用を検討しています create_function
私がしなければならないことのために、そしてそれを使用してデフォルトのパラメーター値を定義する方法がわかりません。これは可能ですか?もしそうなら、パラマをに入力するための最良のアプローチは何ですか create_function
PHPの機能?おそらく使用 addslashes
?
たとえば、私は次のような関数を持っています:
function testing($param1 = 'blah', $param2 = array())
{
if($param1 == 'blah')
return $param1;
else
{
$notblah = '';
if (count($param2) >= 1)
{
foreach($param2 as $param)
$notblah .= $param;
return $notblah;
}
else
return 'empty';
}
}
わかりました、それで私はどのように使用しますか create_function
同じことをするために、パラメーターとそのデフォルト値を追加しますか?
問題は、パラメーターがテキストファイルと関数自体から来ていることです。だから、これを使用するための最良のアプローチについて疑問に思う create_function
文字列を正確に解析する方法。
ありがとう :)
解決
で作成された関数を考慮します create_function
こちらです :
$func = create_function('$who', 'echo "Hello, $who!";');
あなたはそれをこのように呼ぶことができます:
$func('World');
そして、あなたは得る:
Hello, World!
これで、パラメーターのデフォルト値を持つことで、コードは次のようになります。
$func = create_function('$who="World"', 'echo "Hello, $who!";');
注:create_functionに渡された最初の引数で、パラメーターのデフォルト値のみを追加しました。
そして、新しい関数を呼び出します:
$func();
私はまだわかります:
Hello, World!
IEパラメーターのデフォルト値が使用されています。
したがって、パラメーターのデフォルト値は機能します create_function
他の関数の場合と同様に、パラメーターのリストにデフォルト値を配置する必要があります。
その後、パラメーターとその値を含む文字列を作成する方法について...いくつかの文字列の連結は、逃げるべきものを逃れるのを忘れずに、私は思う。
他のヒント
匿名関数を作成しますか? create_function
匿名関数を作成するために使用されます。それ以外の場合は、次のように正常に機能を作成する必要があります。
function name($parms)
{
// your code here
}
使用したい場合 create_function
, 、ここにプロトタイプがあります:
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// outputs
// New anonymous function: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
私は同じ問題を抱えており、作成されたコールバック関数に配列を渡そうとしています...私は一時的な変数を作成すると思います...それは醜いですが、私はスラッシュで自分自身を拷問する方が良いと思います、私のコードは私のコードですすでに今のように十分に不可解です。
だから、説明するために:
global $tmp_someArray;
$tmp_someArray = $someArray;
$myCallback = create_function(
'$arg1',
'
global $tmp_someArray;
// do stuff with $tmp_someArray and $arg1....
return($something);
'
);