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