У меня возникла ошибка с php. Ошибка «Предупреждение: Illegal строка Смещение" корень»это фактический код на линииПредупреждение: Недопустимое смещение строки 'root'
$root = $atts['root'];
любая помощь будет оценена
У меня возникла ошибка с php. Ошибка «Предупреждение: Illegal строка Смещение" корень»это фактический код на линииПредупреждение: Недопустимое смещение строки 'root'
$root = $atts['root'];
любая помощь будет оценена
В PHP синтаксис $var[$index]
работает как с массивами и с строки. С массивом это возвращает элемент в индексе $index
в массиве $var
($index
может быть либо строкой, то есть $var
является ассоциативным массивом или целым числом, что означает, что это нормальный массив (я уверен, что есть лучший термин для это, но я не знаком).
с строки, $index
(называется смещение в данном случае) может быть только целым числом, и возвращает символ в позиции $index
в строке. Так что если у вас есть $var = 'this is my string';
, то $var[2]
вернет букву «i» из «этого» (помните, что деление начинается с 0 для обоих массивов и строк).
Итак, в этом случае ясно, что вы ожидаете, что $atts
будет массивом, но на самом деле это строка. Из-за этого вы не можете получить индекс из другой строки («root»), а всего лишь целое число. По этой причине вы получаете ошибку, которая в значительной степени суммирует то, что я написал выше. Использование строки в виде индекса или смещения для другой строки является незаконным (вы можете использовать только целые числа).
Не видя больше своего кода, я не смогу сказать, почему $atts
- это строка, а не массив, как вы ожидаете, но, надеюсь, вам поможет понять, почему вы получаете эту ошибку.
Можете ли вы попробовать запустить 'var_dump ($ atts)' и сообщить нам, что такое выход. – Dracs
'print_r ($ atts);' для просмотра полного массива $ atts –
Все, что мы знаем сейчас, это то, что $ atts - это строка, а не массив, который вы ожидали. Вам нужно будет опубликовать больше кода, если вы хотите получить более конкретный ответ от нас. – PleaseStand