我得到通知如下将字符串视为字符数组是否会返回“未初始化的字符串偏移量”通知?
Notice: Uninitialized string offset: 1 in /script.php on line 17
这里是线16和17
$results = exec('ping -c 1 -w 1 ' . $ip, $output);
$servers[] = ($results[1] === '' ? false : true);
难道这是由我使用$results[1]
得到的结果$第二个字符引起的?如果是这样,在网上阅读,看起来$string[]
建议超过substr()
,为什么它会生成通知?
我的脚本依赖于该文件生成JSON,这样的通知打破它(这是一个问题,因为它是一个开放源代码的脚本)
这意味着返回的字符串少于2个字符。 – AbraCadaver 2014-10-06 18:58:01
无论如何,一个字符如何等于一个空字符串? – Cthulhu 2014-10-06 19:01:41
@Cthulhu如果服务器在线,结果中的第二个字符不是空格。如果它处于离线状态,则有一个空间。 我想我应该检查$结果是否是一个空字符串,而不是第二个字符呢?如果在那个位置没有字符存在,'$ string []'会返回一个错误,而'substr()'会返回false? – cantsay 2014-10-06 19:03:25