Есть структура типа массива. Доступ к элементам массива происходит методом at(). Нужно, чтобы при отсуствии элемента под данным индексом возвращался null. Такое решение работает, но в логе куча предупреждений
PHP Notice: Only variable references should be returned by reference на строке
return $this->a[$i] ?? self::$_NULL; Как это можно исправить или правильно реализовать? Почему вообще возникает ошибка? Разве
self::$_NULL не является переменной?
class MyStack
{
var $a = [];
var $i = 0;
static $_NULL = null;
function __construct( $arr = [] )
{
$this->a = (array)$arr;
$this->i = 0;
}
function &at( $i )
{
return $this->a[$i] ?? self::$_NULL;
}
}
$myStack = new MyStack([
(object)['value' => 1],
(object)['value' => 2],
]);
if( isset($myStack->at(1)->value) ) {
$myStack->at(1)->value += 10;
}
echo $myStack->at(1)->value;