請記住:
1)$ addOne()中的number參數方法優先於addClass()參數中的$ number成員。
2)句子$ number = $ number ++根本不影響變量$ number,因爲它是第一次被賦值的。
3)addOne()方法不需要是靜態的,除非打算在沒有類addClass的實例的情況下使用。
4)靜態變量只需要初始化一次,參考PHP手冊的詳細信息,所述靜態關鍵字:http://php.net/manual/en/language.oop5.static.php
5)不能引用靜態方法中的成員變量(例如,使用$此) ,因爲靜態方法具有「類範圍」,並且它們的目的是沒有任何這樣的類的實例。另一方面,非靜態方法需要類的實例,並且可以使用$ this引用類的成員。
6)這裏是你如何能做到這樣一個例子:
<?php
class addClass{
public function addOne($number) {
static $limit = 0;
if (!isset($limit)) {
$limit = $number;
}
if ($limit+1 == 7) {
return "Maximum limit reached";
} else {
$limit = $number+1;
}
}
}
$a = new addClass();
for($i = 0; $i< 7; $i++) {
echo $i+1, " => ", $a-> addOne($i), PHP_EOL;
}
你想'私有靜態$數= 0;',並把它稱爲你的方法裏面'自:: $ number'。 –
我不確定。但我只是想每次調用時將$ number的值增加到1。 @NiettheDarkAbsol – PRM
'$ this-> number'而不是'$ number ++' –