PHP中的函数或方法是否可以确定调用者是否需要数组返回值(ala Perl的wantarray
运算符)?具体来说,我想创建一个__get()
魔术方法,如果调用者需要一个数组,它会自动返回一个数组,如果不是,则自动返回一个合理的标量值。所以像这样:
public function __get($name)
{
if (wantarray())
{
// data is stored internally as an array of arrays
// return appropriate array as-is
return $this->data[$name];
}
else
{
// caller doesn't expect an array, return imploded string instead
return implode(', ', $this->data[$name]);
}
}
基本上,PHP是否具有Perl wantarray
运算符的等价物,或者允许确定这种调用上下文?
答案 0 :(得分:1)
不,你不能用PHP做到这一点。
您只需要返回$this->data[$name]
并让来电者决定是否有必要implode
。