php - 函数中的变量迭代

时间:2013-01-03 14:36:56

标签: php function

我希望得到像这样的结果

50+2+2+2+2 = 58

但我得到了这样的结果

50
2
2
2
2

这些是我的代码。

<?php

$height = 50;

echo $height;

function hey($x)
{
    return $height += $x;
}


$i = 4;

while($i != 0)
{
    echo "<br>".hey(2);

    $i--;
}

?>

请注意我的变量和循环的位置必须真正意味着在那个位置。

我需要更改代码。我是使用php函数的新手。 谢谢你的帮助。

6 个答案:

答案 0 :(得分:2)

你可以像这样使用global变量试试:

function hey($x)
{
    global $height;
    return $height += $x;
}

仅在被调用函数之后打印变量高度。 如果你没有将global放在函数内部的变量之前,你似乎在函数中创建了一个新变量。使用全局,您可以告诉服务器获取您在函数

之外创建的变量

答案 1 :(得分:1)

在此功能中:

function hey($x)
{
    return $height += $x;
}

$height不在范围内,因此未定义。你应该把它传递给:

function hey($x, $height)
{
    return $height += $x;
}

然后这样称呼:

hey(2, $height);

答案 2 :(得分:1)

这是范围问题:

function hey($x)
{
    global $height;
    return $height += $x;
}

答案 3 :(得分:0)

更改为:

global $height;

然后

while($i != 0)
{
    echo "+".hey(2);

    $i--;
}

echo "=" . $height;

答案 4 :(得分:0)

我不明白你想要的,但是如果你需要这样的输出,请试试这个代码..

意思是转到底部,所以我删除它。

<?php
    $height = 50;

    echo $height;

    function hey($x)
    {

        echo " + $x";

        return $x;

    }

    $i = 4;

    while($i != 0)
    {
        $height += hey(2);

        $i--;
    }

    echo " = $height";
?>

答案 5 :(得分:0)

这是在线演示:http://phpfiddle.org/main/code/6h1-x5z

    <?php
        function getResult($height = 50, $increment = 2, $times = 4){
         echo $height."+";
         $total = 0;
         for ($i = 0; $i < $times; $i++){
            $total += $increment;     
          if ($i != ($times-1)){
           echo $increment."+";
          }
          else{
           echo $increment." = ".($height+$total);
          }          
         }      
        }    
        //usage
        getResult(50,2,4);
//The print out: 50+2+2+2+2 = 58
    ?>