我可以将一个函数用作另一个函数中参数的默认值吗?在下面的示例中,我尝试使用 Wordpress 函数 get_the_title()
作为默认值:
function GetPageDepartment($department = get_the_title()) {
return $department;
}
按原样,括号会导致解析错误。有没有办法解决这个问题,或者我必须将函数值传递给默认值之外的变量?
我知道这里的实际代码在很大程度上毫无意义,因为它只返回get_the_title()
,但它只是一个例子,因为我实际对参数所做的与问题无关。
答案是"不,是的,但是...然而..."。
不可以,使用 PHP 5.6 时,您不能将函数分配为函数/方法的默认值。
是的,您可以分配一个字符串,如果您在函数上下文中使用该参数/变量,即 echo $department();
,字符串将被视为函数的名称,get_the_title()
将被调用。但。。。你必须依赖字符串>函数名称关系有点丑陋。还。。。谁在乎啊?
编辑:供您考虑....
<?php
function get_the_title() { return "the title"; }
function GetPageDepartment( callable $department=null ) {
if ( null==$department ) {
$department = 'get_the_title';
}
return '<'.$department().'>';
}
echo GetPageDepartment();
不,你不能使用此代码
<?php
function get_the_title(){
return 'this is the title';
}
$temp = get_the_title();
function GetPageDepartment($department) {
echo $department;
}
GetPageDepartment($temp);
最后,我为:
function GetPageDepartment($department = null) {
$department = $department ?: get_the_title(); //Sets value if null.
}
如果未设置其他值,则将 $department 的值设置为 get_the_title()。