-1
我正在尋找最好的方法來實現最初來自Ruby中的PHP類的方法。該方法使用PHP的「靜態」關鍵字創建一個計數器,該計數器可以記住上次調用該函數時的值。移植使用「靜態」到Ruby的PHP迭代函數
function fetchRule()
{
static $index = 0;
$ret = null;
if(isset($this->rules[$index]))
{
$ret = $this->rules[$index];
}
$index = $ret == null ? 0 : $index++;
return $ret;
}
正如你所看到的,規則是對象的一個數組成員。每次調用該函數時,都會獲得下一個規則,然後在最後返回null。我需要將其移植到ruby。可能有十幾種方法可以做到,但我希望能夠保持簡單。
爲了理解如何使用$ index,您必須瞭解「靜態」變量在PHP中是如何工作的。 Ruby沒有這些,但這實際上不是一個錯誤。 $ index被設置一次並記住上一次調用的值。如果它有一個它不會重置它。因此它充當一個計數器 http://www.php.net/manual/en/language.variables.scope.php –