调用函数时如何自动递增值?这就是我想要做的事情,我只需要这样做。除了调用函数时,不能以任何其他方式递增它。
function makeyogurt($type = 1) {
echo "Quantity $type.\n";
makeyogurt($type++);
}
makeyogurt();
答案 0 :(得分:8)
您展示的代码必然会导致无限循环。我猜您正在搜索static
关键字:
function fun() {
static $counter = 0;
$counter++;
echo "$counter";
}
如果在函数/方法定义中使用static
,则只在第一次调用函数/方法时才会创建变量。它的值将在调用后保存,变量将在下一次调用中初始化为该值。
现在您可以像这样调用函数:
fun();
fun();
fun();
输出将是:
1
2
3
选中此manual page
答案 1 :(得分:0)
试试这个:
function makeyogurt($type = 1) {
echo "Quantity $type.\n";
$type += 1;
makeyogurt($type);
}
makeyogurt();
答案 2 :(得分:0)
$type++
是一个所谓的后增量,意味着它将在值传递后递增。
您正在寻找的是++$type
,这是一个预增量并将传递新增加的值。
答案 3 :(得分:0)
如果你没有在函数之外定义$type
它总是1.我不确定你想要什么,但也许这个?
$type=1;
function makeyogurt($type = 1) {
echo "Quantity $type.\n";
global $type;
++$type;
}
makeyogurt(); //makes it 2
或者这个:
$type=1;
function makeyogurt($a = 1) {
echo "Quantity $a.\n";
++$a;
return $a;
}
$type=makeyogurt($type); //makes it 2