這使我感到困惑,我很厭倦將變量存入數據庫之前將變量存儲爲變量。在foreach語句中未定義的變量PHP
這裏是我的代碼
foreach($_POST['parts'] as $key => $value){
$aparts .= $value.',';
}
它存儲$aparts
罰款,但我得到了下面的行未定義變量錯誤。
$aparts .= $value.',';
我很新和學習,我去,我想知道爲什麼發生這種情況:)
這使我感到困惑,我很厭倦將變量存入數據庫之前將變量存儲爲變量。在foreach語句中未定義的變量PHP
這裏是我的代碼
foreach($_POST['parts'] as $key => $value){
$aparts .= $value.',';
}
它存儲$aparts
罰款,但我得到了下面的行未定義變量錯誤。
$aparts .= $value.',';
我很新和學習,我去,我想知道爲什麼發生這種情況:)
這是因爲您正試圖追加到$aparts
而未定義它。要修復它在foreach之前定義它:
$aparts = "";
foreach($_POST['parts'] as $key => $value){
$aparts .= $value.',';
}
PHP也有一個名爲implode()
功能,具有完全相同的結果作爲你的foreach循環:
$aparts = implode(",", $_POST['parts']);
謝謝:)我用你的另外回答它是爲你的答案 –
做到這一點感謝,並,將讓你的陣列從字符串,一旦你讀它的爆炸()函數一個整潔的方式。 http://php.net/manual/en/function.explode.php - 但是,如果你的任何'部分'有逗號,這會導致問題。 –
你可以使用serialize()在插入時和unserialize()從數據庫中讀取數據時。這將需要一個數組併爲您創建一個可以保存的字符串。然後,unserialize接受該字符串並再次創建該數組。
即使您的內容中有逗號,這也可以正常工作。您當前的方法(和對方的回答)不會,它將一個字符串用逗號您的最終陣列分成兩個獨立的條目。
您應該foreach
語句之前聲明$aparts
:
$aparts = '';
foreach ($_POST['parts'] as $key => $value) { //...
定義之前:'$ aparts ='';'。 – Blackhole
「*我知道的最簡單的方法將關閉錯誤報告*」,不 - 最簡單的方法是解決它,只需將其定義爲已經建議。 – Qirel
@Qirel我同意我的問題的答案我已經解決了問題,並學到了一些東西,所以我非常感謝我刪除了從我原來的問題中的評論 –