Я новичок в PHP. Сегодня PHP был перенесен с версии 5.3.3 в 5.4.4 (Debian Squeeze to Debian Wheezy), и после этого я получаю эту ошибку из журнала Apache:
> PHP Предупреждение: недопустимое смещение строки «phptype» в xyz
Линия:
self::$conn[$dsn['phptype']] = $mdb2;
Мне нужна помощь для восстановления системы.
<?php $a = 'Hello'; echo $a['whatever']; ?>
Как говорят некоторые из ребята в комментариях, делать что-то подобное, вероятно, приведет к этой ошибке. Как вы можете видеть в приведенном выше примере $a
– это строка, а не массив. Это означает, что вы не можете получить к нему доступ с ключом (если вы хотите получить третью букву в строке, было бы нормально делать $a[2]
).
Вам нужно проверить, что self::$conn
и $dsn
на самом деле являются массивами, а не строками. Как говорит Альваро Г. Викарио в комментариях, вы можете сделать это, сбросив переменную:
var_dump(self::$conn, $dsn)
Ошибки неправильного смещения возникают при попытке получить доступ к индексу массива с использованием объекта или массива в качестве ключа индекса. Проверьте правильность вашего массива.