代码之家  ›  专栏  ›  技术社区  ›  Felipe

这个PHP函数返回什么?

  •  4
  • Felipe  · 技术社区  · 16 年前

    公共函数添加($child){ 返回$this->children[]=$child; }

    顺便说一句,这是dagfinn reiersol从php in action中摘录的。根据这本书,这会返回$child,但它不应该在成功分配的情况下返回true,否则返回false吗?

    提前谢谢

    2 回复  |  直到 16 年前
        1
  •  9
  •   Chris Laplante    16 年前

    它回来了 $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() 被放 进入之内 美元 .

    更多信息: http://en.wikipedia.org/wiki/Operator_associativity

        2
  •  1
  •   ontrack    16 年前

    它确实返回子级,因为赋值只返回分配的内容。

    成功后它是否应该返回真不是一个规则,所以如果它是 记录在案 把孩子还回来,是正确的。

    推荐文章