foreach循环和变量undefined在我的情况下

时间:2014-07-22 08:01:28

标签: php

http://viper-7.com/T1rkOL

下面的$ html变量有什么问题?

<?php $arr = array(1,2,3,'a','b','c');
     echo "===numbers===".'<br>';
     $head = "===alpha===".'<br>';
$html;
foreach($arr as $item){
    if(is_numeric($item)){

            echo $item;
    }else{
        $html .= $item;
    }   
}
    echo $head . $html;
?>

我想要的就像这样

===numbers===
123
===alpha===
abc

6 个答案:

答案 0 :(得分:1)

尝试添加$html = "";

试试这样: -

<?php
$arr = array(1, 2, 3, 'a', 'b', 'c');

echo     '===numbers===';
echo     '<br />';
$head  = '===alpha===';
$head .= '<br />';

$html  = '';

foreach ($arr as $item) {
    if (is_numeric($item)) {
        echo $item;
    }
    else {
        $html .= $item;
    }
}

echo $head . $html;
?>

<强> WORKING DEMO

答案 1 :(得分:0)

$html;更改为$html1 = "";

你必须定义你的变量或设置valuess。

答案 2 :(得分:0)

您定义了$html,但在循环中使用了$html1

答案 3 :(得分:0)

此代码可以使用:

<?php 
 $arr = array(1,2,3,'a','b','c');
 echo "===numbers===".'<br>';
 $head = "===alpha===".'<br>';
$html = '';
foreach($arr as $item){
if(is_numeric($item)){

        echo $item;
}else{
    $html .= $item;
}   
}
echo $head . $html;

已添加='';到$ html定义,并将$ html 1更改为$ html;

答案 4 :(得分:0)

<?php $arr = array(1,2,3,'a','b','c');
         echo "===numbers===".'<br>';
         $head = "===alpha===".'<br>';
    $html1;
    foreach($arr as $item){
        if(is_numeric($item)){

                echo $item;
        }else{
            $html1 .= $item;
        }   
    }
        echo $head . $html1;
    ?>

答案 5 :(得分:0)

你的错误是你定义了$html,但从未真正使用它。相反,您使用了$html1

话虽如此,如果不是因为你只在某种情况下指定$html1,那么你的代码就可以通过“意外”工作。在不满足条件的情况下,即从未定义$html1的情况。如您所知,解决方案是在循环之前定义$html1,因此无论如何都始终定义它。