php函数[loop]和[if]不起作用

时间:2014-04-27 10:02:02

标签: php

所以我尝试使用嵌套循环创建函数,如果在其中但是当我尝试打开文件时它不会显示任何内容..这是我的代码

<?php

      $result[0] = "no";
      $condition[0] = "yes";

      function cek() {

       for ($i=0; $i<2; $i++) {

        if ($result[$i] == "no") {

            for ($i=0; $i<2; $i++) {

                if ($condition[$i] == "yes") {
                    echo ("means yes");
                    break;
                }
                else {
                    echo ("means no");
                    break;
                }
            }
        }
    }   
}


cek();   


?>

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

以下是执行代码的结果:

$ php test.php
PHP Notice:  Undefined variable: result in /home/.../test.php on line [...]
PHP Notice:  Undefined variable: result in /home/.../test.php on line [...]

关注线是:

if ($result[$i] == "no")

变量$result$condition在函数中未定义,您必须作为参数传递给函数或使用global(在这种情况下应该避免)。

此外,此循环也将失败:

for ($i=0; $i<2; $i++)

实际上,“2”不是$condition(或$result)的大小。您可以改用sizeof($condition)count($condition)

最后,你不应该在两个嵌套循环中使用相同的增量($i)。

此代码可以使用:

<?php
$result = array("no");
$condition = array("yes");

function cek(array $result, array $condition) {
    for ($i=0; $i<sizeof($result); $i++) {
        if ($result[$i] == "no") {
            for ($j=0; $j<sizeof($condition); $j++) {
                echo "means " . (($condition[$i] == "yes") ? "yes" : "no");
                break;
            }
       }
    }
}

cek($result, $condition);

但我不确定这正是你要做的事情;)