Вопрос

Общественная функция Add ($ Child) {return $ this-> дети [] = $ ребенок; }

Кстати, это выдержка из PHP в действии Dagfinn ReiersoL. Согласно книге, это возвращает доллар?

заранее спасибо

Это было полезно?

Решение

Это возвращает $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

Другие советы

Это возвращает ребенка, потому что назначение просто возвращает все, что было назначено.

Следует ли вернуть правду на успех, не является правилом, так что если это было документированный Чтобы вернуть ребенка, это правильно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top