1

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ありますか、それともこの種の呼び出しコンテキストの決定を可能にしますか?

4

1 に答える 1

1

いいえ、PHPではこれを行うことができませんでした。

あなたはただ戻っ$this->data[$name]て、発信者にそれが必要かどうかを決定させる必要がありimplodeます。

于 2012-07-30T09:11:22.820 に答える