在PHP中调用上下文(数组或标量)?

时间:2012-07-30 09:07:01

标签: php

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运算符的等价物,或者允许确定这种调用上下文?

1 个答案:

答案 0 :(得分:1)

不,你不能用PHP做到这一点。

您只需要返回$this->data[$name]并让来电者决定是否有必要implode