2010-08-18 55 views
1

我有以下問題,我的函數將字符串追加到$ string($ string。= bla),但在開始時字符串是空的,所以我得到這個錯誤信息PHP追加到空字符串沒有錯誤

一個PHP錯誤遇到
嚴重性:注意
消息:未定義的變量:$字符串
文件名:庫/ file.php
行號:90

當然,如果我預先定義字符串,如$ string = NULL,錯誤不會發生,但 但我雖然也許有一種方法可以追加到一個字符串,而無需事先定義變量/有一個!空檢查。

它應該只是一個單線的東西,我正在尋找一個苗條的代碼。

謝謝。

回答

4

細長的代碼和刪除所有通知級別的錯誤通常不會齊頭並進。如您所知,錯誤是關於使用未初始化的變量。你不能初始化它,沒有初始化它。不過,我不會考慮$string = '';膨脹。

+0

好吧,相反它確實是 $ string。= bla; 與 $ string = NULL; $ string。= bla; 我通過foreach循環運行它,所以我必須在裏面初始化它,因爲實際上它是一個帶有不同鍵的數組,所以我不知道所有使用的名稱。 – 2010-08-18 18:48:25

1

它應該仍然有效,它只是解釋器給你一個警告。

error_reporting(E_NONE); 

這就是說它通常它很好的做法,聲明變量第一,雖然,有而你正在測試打開了警告:如果你想與您可以抑制PHP警告。

+0

+1「=」 - 它甚至不是一個警告,只是一個通知,這是不是一個警告那麼嚴重。 – 2010-08-18 18:36:45

+5

關閉錯誤可隱藏問題,但不能解決問題。 – Chris 2010-08-18 18:38:21

2

你使用一個變量的第一次只是做「=」不

$newVar = ""; //good 
$newVar2 .= ""; //bad 

$newVar .= ""; //ok because of good line 
+0

謝謝,但我知道上面所說的所有事情。 我知道我爲什麼會得到錯誤,我知道如何初始化,並且我知道如何隱藏錯誤(儘管如前所述,隱藏並不是解決方案)。 我只是想知道有一種方法可以將壞行寫成好的行。 我想我必須去醜陋的方式和initilize。 雖然謝謝。 – 2010-08-18 18:45:39

+2

初始化不是「醜陋」的方式。這是*正確*的方式。初始化所有變量。習慣它。 – Jason 2015-07-22 16:38:32