Что эта функция PHP возвращает?
-
04-10-2019 - |
Вопрос
Общественная функция 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
Другие советы
Это возвращает ребенка, потому что назначение просто возвращает все, что было назначено.
Следует ли вернуть правду на успех, не является правилом, так что если это было документированный Чтобы вернуть ребенка, это правильно.