php foreach循环在函数名中使用变量
我有一个 foreach 循环,为每个数组项创建一个函数。我需要为创建的每个函数指定一个唯一的名称,并且希望在函数名称中包含当前的数组项,但不知道如何执行此操作。
目前我有一个名为“function ttm_global__shortcode()”的函数,但我希望它是“function ttm_global_$acf_field_shortcode()”
$acf_fields = array("telephone_number", "fax_number", "email_address", "skype");
foreach($acf_fields as $acf_field) {
function ttm_global__shortcode() {
ob_start();
echo get_field($acf_field, 'options');
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode($acf_field, 'ttm_global_'.$acf_field.'_shortcode');
}
谢谢
I have a foreach loop that creates a function for each array item. I need a unique name for each function created and would like to include the current array item in the function name but don't know how to do this.
At the moment I have the function named as "function ttm_global__shortcode()" however I would like it to be "function ttm_global_$acf_field_shortcode()"
$acf_fields = array("telephone_number", "fax_number", "email_address", "skype");
foreach($acf_fields as $acf_field) {
function ttm_global__shortcode() {
ob_start();
echo get_field($acf_field, 'options');
$output = ob_get_contents();
ob_end_clean();
return $output;
}
add_shortcode($acf_field, 'ttm_global_'.$acf_field.'_shortcode');
}
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 PHP 5.3 这可以通过匿名函数来完成
Using PHP 5.3 this can be done with anonymous functions
如果
add_shortcode
的第二个参数是回调,我认为您可以在不创建此类函数的情况下完成此操作。如果你还想创建函数。
PHP 5.3.0 之前
使用 create_function
PHP 5.3.0 之后
注意: 增加了一个参数到你的函数。
If the second parameter of
add_shortcode
is a call back I think you can do it without creating such function.If you still want to create function.
Before PHP 5.3.0
Use create_function
After PHP 5.3.0
Note: A parameter is added to your function.
您可以使用 create_function 方法根据传递的参数创建匿名函数,并为其返回唯一的名称。
查看 http://us.php.net/manual/en/function .create-function.php 了解更多详细信息。
You can use the create_function method to creates an anonymous function from the parameters passed, and returns a unique name for it.
check out http://us.php.net/manual/en/function.create-function.php for more details.