foreach语句PHP中的未定义变量

时间:2015-11-05 13:19:18

标签: php arrays

这让我感到困惑,在将变量发布到我的数据库之前,我很累心将数组存储为变量。

这是我的代码

foreach( $_POST['parts'] as $key => $value){
        $aparts .= $value.',';

    }

它存储$aparts很好,但我在下一行中得到Undefined变量错误。

$aparts .= $value.',';

我很新,随时随地学习我想知道为什么会发生这种情况:)

3 个答案:

答案 0 :(得分:7)

这是因为您试图在没有定义的情况下附加到$aparts。要修复它,请在foreach之前定义它:

$aparts = "";
foreach( $_POST['parts'] as $key => $value){
   $aparts .= $value.',';
}

PHP还有一个名为implode()的函数,其结果与foreach循环完全相同:

$aparts = implode(",", $_POST['parts']);

答案 1 :(得分:3)

插入时可以使用serialize(),而从数据库读取时可以使用unserialize()。这将采用一个数组并为您创建一个可以保存的字符串。然后,unserialize接受该字符串并再次创建数组。

即使您的内容中包含逗号,也会有效。您当前的方法(和另一个答案)不会,它会将带有逗号的单个字符串分成最终的两个单独的条目阵列。

答案 2 :(得分:1)

您应该在$aparts声明之前声明foreach

$aparts = '';
foreach ($_POST['parts'] as $key => $value) { //...