技术 · 2014 年 7 月 16 日

Illegal string offset警告信息

某天,某新服务器,某开发的新站,在某些情况下出现了 Warning(E_WARNING): Illegal string offset 警告信息,程序运行正常。

经过排查,原来是php版本变化引起的:

自 PHP 5.4 起字符串下标必须为整数或可转换为整数的字符串,否则会发出警告。

以上代码在PHP 5.3中的输出:

string(1) "b"
bool(true)
string(1) "b"
bool(true)
string(1) "a"
bool(true)
string(1) "b"
bool(true)

以上代码在PHP 5.4中的输出:

string(1) "b"
bool(true)

Warning: Illegal string offset '1.0' in /tmp/t.php on line 7
string(1) "b"
bool(false)

Warning: Illegal string offset 'x' in /tmp/t.php on line 9
string(1) "a"
bool(false)
string(1) "b"
bool(false)

原文章在这里:http://cn2.php.net/manual/zh/language.types.string.php 请使用Ctrl+F查询