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