我得到通知如下將字符串視爲字符數組是否會返回「未初始化的字符串偏移量」通知?
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