[英]PHP Using $this->variable as Class Method Parameter Default Value
好的,这似乎是一个非常愚蠢的问题,但PHP告诉我,我不能这样做,或者说我的IDE ...
在下面的例子中,它告诉我我不能使用$ this-> somevar作为方法的默认值。
即...
class something {
public somevar = 'someval';
private function somefunc($default = $this->somevar) {
}
}
“[函数参数]的默认值必须是常量表达式,而不是(例如)变量,类成员或函数调用。”
在这种情况下,您可以使用我的小库ValueResolver ,例如:
class something {
public somevar = 'someval';
private function somefunc($default = null) {
$default = ValueResolver::resolve($default, $this->somevar); // returns $this->somevar value if $default is empty
}
}
并且不要忘记使用命名空间use LapaLabs\\ValueResolver\\Resolver\\ValueResolver;
还可以进行类型转换,例如,如果变量的值应该是integer
,那么使用:
$id = ValueResolver::toInteger('6 apples', 1); // returns 6
$id = ValueResolver::toInteger('There are no apples', 1); // returns 1 (used default value)
查看文档以获取更多示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.