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!
即使用该参数的默认值。
因此,参数的默认值与 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);
'
);
不隶属于 StackOverflow