public function add($ child){return $ this-> children [] = $ child; }
ところで、これはDagfinnReiersolによるPHPinActionからの抜粋です。この本によると、これは$ childを返しますが、割り当てが成功した場合はtrueを返し、そうでない場合はfalseを返す必要がありますか?
前もって感謝します
public function add($ child){return $ this-> children [] = $ child; }
ところで、これはDagfinnReiersolによるPHPinActionからの抜粋です。この本によると、これは$ childを返しますが、割り当てが成功した場合はtrueを返し、そうでない場合はfalseを返す必要がありますか?
前もって感謝します
を返します$child
。これは、$child
が最初に配列に追加されるためです$this->children[]
。次に、この割り当ての結果が返されます。
基本的に、これは次の略記です。
public function add($child){
$this->children[]=$child;
return $child;
}
このタイプのショートカットが機能するのは、PHPでは、割り当てが「右結合」であるためです。http ://www.php.net/manual/en/language.operators.precedence.php
これは、$a = ($b = 3)
実際には右から左に評価され、3
に格納されてからに格納されることを意味し$b
ます $a
。また、私がリンクを提供したページのメモは次のとおりです。
=の優先順位は他のほとんどの演算子よりも低くなりますが、PHPでは次のような式を使用できます。
if (!$a = foo())
この場合、の戻り値foo()
はになり$a
ます。
詳細情報: http: //en.wikipedia.org/wiki/Operator_associativity
割り当ては割り当てられたものを返すだけなので、子を返します。
成功したときにtrueを返すかどうかはルールではないため、子を返すことが文書化されている場合は正しいです。