2013-04-18 4 views
5

Я новичок в PHP. PHP-был перенесен сегодня от 5.3.3 до 5.4.4 версии (Debian Squeeze для Debian хриплого) и, после этого, я получаю эту ошибку из Apache журнала:PHP Предупреждение: Незаконное смещение строки

> PHP Warning: Illegal строки смещения '' phptype в АБВ

линия:

self::$conn[$dsn['phptype']] = $mdb2; 

мне нужна помощь, чтобы восстановить систему.

+3

Я думаю, либо 'самостоятельно :: $ conn' или' $ dsn' является строкой. – hek2mgl

+2

'var_dump (self :: $ conn, $ dsn)' –

+4

Возможный дубликат [Недопустимое смещение строки Warning PHP] (http://stackoverflow.com/questions/9869150/illegal-string-offset-warning-php) –

ответ

0

Ошибки неправильного смещения возникают при попытке получить доступ к индексу массива с использованием объекта или массива в качестве ключа индекса. Проверьте правильность вашего массива.

4
<?php 
$a = 'Hello'; 
echo $a['whatever']; 
?> 

Как говорят некоторые из ребята в комментариях, выполнение подобных действий, вероятно, приведет к этой ошибке. Как видно из приведенного выше примера, $a - это строка, а не массив. Это означает, что вы не можете получить к нему доступ с ключом (если вы хотите получить третью букву в строке, было бы нормально делать $a[2]).

Вам необходимо проверить, что self::$conn и $dsn являются фактически массивами, а не строками. Как говорит Альваро Г. Викарио в комментариях, вы можете сделать это путем сброса переменной:

var_dump(self::$conn, $dsn)

Смежные вопросы