Что такое правильный способ использования
array_splice
в PHP? В заголовке функции четко сказано:PHP массив массива по ссылкеarray_splice (array &$input , int $offset...
поэтому он должен принимать ссылку в качестве первого аргумента.Однако линия
array_push(&$this->contextsIds, $contextId);
Триггеры ошибку Устарел: Call времени пройти по ссылке устарела в ... Линия 132
Как вернуть ссылка на массив? У меня есть:
public function &getContextsIds() { return is_array($this->contextsIds) ? $this->contextsIds : array(); }
, но он говорит Примечание: только ссылки на переменные должны быть возвращены путем ссылки
ответ
Функция уже объявлена взять ссылку (
array &$input
); при вызове функции вам не понадобится&
. Просто назвать это так:array_push($this->contextsIds, $contextId);
Как говорится в сообщении, вы должны возвращать только фактические переменные по ссылке, а не простые значения. В вашем примере есть два таких экземпляра: оператор
? :
оценивает значение, а такжеarray()
сам по себе является значением, не связанным с какой-либо переменной. Вы должны, вероятно, просто вернуть член класса, независимо от того, является ли он пустым или нет:return $this->contextIds;
Зачем возвращать ссылку на массив, особенно в коде, при условии:
public function &getContextsIds() {
return is_array($this->contextsIds) ? $this->contextsIds : array();
}
Когда эта функция будет работать, она может вернуть ссылку на пустой массив, я мог бы сделать с ней то, что я хочу, и изменить его столько, сколько захочу, но это не повлияет, потому что это было просто пустой массив без каких-либо дополнительных ссылок ..
- 1. PHP-массив, переданный по ссылке?
- 2. PHP массив по ссылке сохраняется
- 3. Значение массива массива PHP по ссылке
- 4. PHP: массив передан по ссылке на функцию?
- 5. php являются элементами массива, доступными по ссылке?
- 6. Сортировка массива по ссылке
- 7. Изменить массив по ссылке
- 8. Массив указателя функции по ссылке
- 9. передать массив по ссылке
- 10. передать массив по ссылке
- 11. PHP Pass по ссылке
- 12. Пропустить 2D-массив по ссылке
- 13. Clone массив передается по ссылке
- 14. PHP Передача по ссылке
- 15. PHP элементы копирования массива по значению, а не по ссылке
- 16. PHP присвоившего по ссылке, проходя по ссылке
- 17. Измените массив хэшей по ссылке
- 18. Передача массива по ссылке - подмножество большего массива
- 19. Javascript - сортировать массив по ссылке
- 20. PHP значение обновления в многомерном не массив по ссылке
- 21. Есть ли версия массива PHP, которая является передачей по ссылке?
- 22. Foreach по ссылке, только некоторые элементы массива
- 23. Любая причина, по которой PHP не перебирает массив по ссылке?
- 24. Возвращение по ссылке
- 25. PHP - Добавление дочерних элементов в многоуровневый ассоциативный массив по ссылке
- 26. PHP Array, всегда по ссылке
- 27. Обновить массив, переданный по ссылке с BASH
- 28. Передача и использование массива по ссылке в PHP
- 29. PHP По ссылке переменная
- 30. Возврат по ссылке PHP
Спасибо! Не могли бы вы помочь мне на втором, который я добавил? – tillda
@tillda: Я обновил ответ. – casablanca
«независимо от того, пуст он или нет». Он тестирует 'is_array()' – BoltClock