如何在调用函数时自动递增数值?在这里我正在尝试做的事情,我需要这样做。除了调用函数之外,不能以任何其他方式增加它。调用函数时自动递增数值
function makeyogurt($type = 1) {
echo "Quantity $type.\n";
makeyogurt($type++);
}
makeyogurt();
如何在调用函数时自动递增数值?在这里我正在尝试做的事情,我需要这样做。除了调用函数之外,不能以任何其他方式增加它。调用函数时自动递增数值
function makeyogurt($type = 1) {
echo "Quantity $type.\n";
makeyogurt($type++);
}
makeyogurt();
试试这个:
function makeyogurt($type = 1) {
echo "Quantity $type.\n";
$type += 1;
makeyogurt($type);
}
makeyogurt();
还有你的代码将必然导致一个无限循环。我猜你要搜索的关键字static
:
function fun() {
static $counter = 0;
$counter++;
echo "$counter";
}
如果使用static
函数/方法的定义中,变量将获得创建仅在第一次函数/方法被调用。它的值将在调用后保存,并且变量将在下次调用中初始化为该值。
现在你可以这样调用该函数:
fun();
fun();
fun();
输出将是:
1
2
3
入住这manual page
这个问题并不十分清楚,但我认为*这是OP正在寻找的东西。 +1 –
@AmalMurali Hey Amal! Thx :)我可以解释如何使用通过引用来递增,否则。虽然这在理论上是可行的,但是如何让它有意义呢? – hek2mgl
它不 - 这就是为什么我[要求澄清](http://stackoverflow.com/questions/21336558/auto-increment-a-value-when-calling-a-function/21336628?noredirect=1# comment32165423_21336558)在问题的评论:) –
如果你没有在函数外部定义$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
这将导致无限循环。 – putvande
你究竟想用这些代码来完成什么? –
'$ type ++'将增加变量,但返回其原始值。 '$ type'值是一个局部变量,所以它只会存在于该函数调用中。你想要像'makeyogurt($ type + 1);'? –