我是PHP的新手。 今天PHP从5.3.3迁移到5.4.4版本(Debian Squeeze到Debian Wheezy),之后我从Apache日志中收到此错误:
> PHP警告:xyz中的非法字符串偏移'phptype'
该行是:
self::$conn[$dsn['phptype']] = $mdb2;
我需要帮助来恢复系统。
答案 0 :(得分:4)
<?php
$a = 'Hello';
echo $a['whatever'];
?>
正如评论中的一些人所说,做这样的事情可能会导致错误。正如您在上面的示例中所看到的,$a
是字符串而不是数组。这意味着您无法使用密钥访问它(如果您希望获得字符串中的第3个字母,则可以$a[2]
)。
您需要检查self::$conn
和$dsn
实际上是数组而不是字符串。正如ÁlvaroG。Vicario在评论中所说,你可以通过转储变量来实现:
var_dump(self::$conn, $dsn)
答案 1 :(得分:0)
当您尝试使用对象或数组作为索引键访问数组索引时,会发生非法的偏移类型错误。检查阵列是否正确。