我的下一个循环没有开始

时间:2017-08-09 02:27:10

标签: php html for-loop

我尝试创建一个创建一些三角形的函数。

<pre>
<?php
$angka = isset($_POST['angka']) ? $_POST['angka'] : "0";
if ($angka)
{
  $segitiga = "";
  $max = $angka + $angka - 1;
  $ctr = 0;
  for ($i=1; $i<=$angka; $i++){
    echo $i;
    for ($j=1;$j<=$max;$j++){
      if ($i = $j){
      if($j<=$angka){
        $ctr++;
      }elseif($j>$angka){
        $ctr--;
      }
        echo " ". $ctr * $ctr;
      }else{
        echo " ";
      }
    }
    echo ""."<br>";
  }
}
?>
</pre>

for ($i=1; $i<=$angka; $i++)的行已停止。它只运行一次。

下一个$i未运行。没有下一个$i

实际上,我想把它作为一个功能,但这仍然无效。

3 个答案:

答案 0 :(得分:1)

看起来这可能是罪魁祸首

if ($i = $j){

应该是

if ($i == $j){

因为您将$i设置为$j,如果$angka为1,它将退出for循环,因为它是$i <=$angka

答案 1 :(得分:0)

for ($i=1; $i<=$angka; $i++){

你的$ i从1开始并停在等于$ angka的地方 由于

,$ angka可能为0
$angka = isset($_POST['angka']) ? $_POST['angka'] : "0";

这样循环可能永远不会执行,甚至一次也不会执行 如果你想测试我在说什么,我正在用$angka手动设置你的代码并且它正常运行 这是以下代码的output

$angka =  "3";
echo "<pre>";

if ($angka)
{
    $segitiga = "";
    $max = $angka + $angka - 1;
    $ctr = 0;

    for ($i=1; $i<=$angka; $i++){
        echo $i;
        echo 'the i loop here'.PHP_EOL;
        for ($j=1;$j<=$max;$j++){
            echo 'the j loop here'.PHP_EOL;
            if ($i == $j){
                if($j<=$angka){
                    $ctr++;              
                }elseif($j>$angka){
                    $ctr--;
                }
                echo " ". $ctr * $ctr;
            }else{
                echo " ";
            }
        }
        echo ""."<br>";
    }
}

答案 2 :(得分:0)

这是固定代码:

<?php
$angka = isset($_POST['angka']) ? $_POST['angka'] : "0";
if ($angka)
{
    $segitiga = "";
    $max = $angka + $angka - 1;
    $ctr = 0;

    for ($i=1; $i<=$angka; $i++){
      echo $i;
      ///*
      for ($j=1;$j<=$max;$j++){
        if ($i == $j){ //NOTICE how this needs to be `==` and not `=`
            if($j<=$angka){
              $ctr++;
            }elseif($j>$angka){
              $ctr--;
            }
            //$segitiga = $segitiga . ($ctr * $ctr);
            echo " ". $ctr * $ctr;
        }else{
            //$segitiga = $segitiga . " ";
            echo " ";
        }
      }
      //*/
      //$segitiga = $segitiga . "\n";

        echo ""."<br>";
    }
    //echo $segitiga;
}
?>