public function add($ child){ 返回$ this-> children [] = $ child; }
顺便说一句,这是Dagfinn Reiersol的PHP in Action的摘录。根据这本书,这会返回$ child,但是如果成功分配则不应该返回true,否则返回false?
提前致谢
答案 0 :(得分:9)
返回$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())
,其中 case放置foo()
的返回值 进入$a
。
答案 1 :(得分:1)
它确实返回了child,因为赋值只返回指定的内容。
是否应该在成功时返回true不是一个规则,所以如果记录以返回子项,那就是正确的。