此代码有效,可能有更好的方法来实现,但我的问题是,
这样的传递是否有任何特定术语? (与匿名函数一样),
这是一种可以接受的做法吗? ,
是否符合标准?
<?php
// suppose the only way i can retrieve the content is by using this function
//like wordpress equivalent of the_content()
function mycontent()
{
$Original_content="oldcontent";
return $Original_content;
}
//instead of ---> echo $Original_content."facebook,twitter code";
//if i define a new function
function social_share($content)
{
$added_social=$content;
$added_social.=" + facebook,twitter code...";
echo $added_social;
}
//function call
social_share(mycontent());
?>
提前感谢:)
答案 0 :(得分:2)
你没有传递一个功能。您将一个函数调用的结果直接传递给另一个函数作为参数。 '传递函数'意味着'父'函数将在某个时刻调用'子'函数。在这种情况下,social_share根本不会调用mycontent() - 这在social_share执行之前就已经完成了。
话虽如此,如果你有这样的事情:
function my_echo($arg) {
print($arg);
}
function social_share($somearg, $func_to_invoke) {
$$func_to_invoke($somearg);
}
social_share('hello', 'my_echo');
那么你将通过将它作为参数传递来调用另一个函数。在这种情况下,您可以通过您的小型自定义my_echo
函数打印出“hello”,而无需编写my_echo('hello');
。
答案 1 :(得分:2)
这根本没有错。事实上,这很像面向对象的方法。您可以创建一个具有这些方法的类,并使用它们将其他属性传递给其他对象和类等。在我看来,这是一个很好的做法。