2

我想要这样的结果

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 函数的新手。谢谢您的帮助。

4

6 回答 6

2

您可以使用这样的global变量尝试:

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

并且仅在调用函数之后打印变量高度。如果您没有将global变量放在函数内部的变量之前,那么您似乎在函数内部创建了一个新变量。使用 global 您告诉服务器获取您在函数外部创建的变量

于 2013-01-03T14:39:25.203 回答
1

在这个函数中:

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

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

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

然后像这样调用它:

hey(2, $height);
于 2013-01-03T14:40:03.260 回答
1

这是范围问题:

function hey($x)
{
    global $height;
    return $height += $x;
}
于 2013-01-03T14:40:56.800 回答
0

改成:

global $height;

然后

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

    $i--;
}

echo "=" . $height;
于 2013-01-03T14:39:50.263 回答
0

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

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

<?php
    $height = 50;

    echo $height;

    function hey($x)
    {

        echo " + $x";

        return $x;

    }

    $i = 4;

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

        $i--;
    }

    echo " = $height";
?>
于 2013-01-03T14:59:01.770 回答
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
    ?>
于 2013-01-03T15:10:48.887 回答