调用函数时自动递增值

时间:2014-01-24 15:37:19

标签: php

调用函数时如何自动递增值?这就是我想要做的事情,我只需要这样做。除了调用函数时,不能以任何其他方式递增它。

function makeyogurt($type = 1) {
    echo "Quantity $type.\n";
    makeyogurt($type++);
}

makeyogurt();

4 个答案:

答案 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