2012-02-04 96 views
8

我正在做一個東西在PHP中,而不是它的調試模式。所以我我們php錯誤報告未初始化的字符串偏移量:0

error_reporting(E_ALL); 

但是當我試圖訪問字符串的任何字符它給我的錯誤是由於錯誤報告。

$sentence = "Hello World"; 
$sentence[0] //Uninitialized string offset: 0 

編輯:

public static function prepareSentence($sentence) 
{ 
    $sentence = trim($sentence); 
    if ($sentence[0] == '"') //Uninitialized string offset: 0 
     $sentence = substr($sentence, 1, strlen($sentence)); 

    if ($sentence[strlen($sentence) - 1] == '"') 
     $sentence = substr($sentence, 0, -1); 

    if ($sentence[0] == '"' || $sentence[strlen($sentence) - 1] == '"') 
     return self::prepareSentence($sentence); 
    return $sentence; 
} 

我應該如何才能在開發模式下工作要做。我需要error_reporting(E_ALL);

在此先感謝。

+0

多一點的代碼會很好。你以前使用過句子變量嗎? – 2012-02-04 05:34:25

+0

好男人。我剛剛編輯。 – Elbek 2012-02-04 05:36:21

+0

運行得很好:http://ideone.com/R6y3n – mpen 2012-02-04 05:40:34

回答

18

對於空字符串,您不能使用$sentence[0],這將導致您得到的通知。

您可以添加!empty($sentence)來檢查它是否爲空。

+0

實際上我從文件中解析了一堆字符串。所以文件不是空的。有很多字符串塊,但由於該方法的空格出現空字符串,並給出錯誤。這是我的不好。我只是檢查和意識到。 TX。 – Elbek 2012-02-04 05:55:50

+0

空的問題是空(「0」)也將返回true。 – 2014-08-05 17:28:21

+0

@KeVin以編程方式0和空不同,空是沒有數據,而零是有效值。 – 2016-12-30 05:19:20

相關問題