我希望得到像这样的结果
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函数的新手。 谢谢你的帮助。
答案 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
?>