public function add($child){ return $this->children[]=$child; }
顺便说一句,这是 Dagfinn Reiersol 的 PHP in Action 的摘录。根据这本书,这会返回 $child,但它不应该在分配成功的情况下返回 true,否则返回 false?
提前致谢
public function add($child){ return $this->children[]=$child; }
顺便说一句,这是 Dagfinn Reiersol 的 PHP in Action 的摘录。根据这本书,这会返回 $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
。
它确实返回孩子,因为分配只返回分配的任何内容。
它是否应该在成功时返回 true 不是一个规则,所以如果它被记录为返回 child,它是正确的。