如何在調用函數時自動遞增數值?在這裏我正在嘗試做的事情,我需要這樣做。除了調用函數之外,不能以任何其他方式增加它。調用函數時自動遞增數值
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);'? –