0

这段代码有效,可能有更好的方法来实现,但我的问题是,

像这样通过有什么具体的术语吗?(与匿名函数一样),
这是一种可以接受的做法吗?,

是否违反标准?

<?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());
?>  

提前致谢 :)

4

2 回答 2

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');.

于 2012-09-24T04:00:49.223 回答
2

这一点都没有错。实际上,这很像面向对象的方法。您可以创建一个具有这些方法的类,并使用它们将其他属性传递给其他对象和类等。我认为这是一种很好的做法。

于 2012-09-24T04:01:41.380 回答