Beklendiği gibi PHP Statik değişken çalışmıyor

2 Cevap php

Bu example php.net şöyledir:

<?php
function Test()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

Ve bu benim kod:

function getNextQuestionID()
{
	static $idx = 0;
	return $idx++;
}

Ve ben JavaScript kullanabilirsiniz:

'quizID=' + "<?php echo getNextQuestionID(); ?>"

0 everytime döndürür. Neden?

2 Cevap

Ben statik değişkenler ne yanlış inanıyorum. Bu kodu deneyin ve size daha iyi anlasınlar:

echo getNextQuestionID() . ", " getNextQuestionID() . ", " getNextQuestionID();

Ve ne demek istediğimi göreceksiniz.

Statik var sadece sürece komut yaptığı gibi yaşıyor.

+ + $ Var - Eğer sonek operatörü $ var + + yerine önek sürümünü kullanıyorsanız, çünkü 1 yerine ilk kaçak 0 dönen nedenidir. Fark işlev döndükten sonra sonek operatörü kullanırken artış sadece uygulanan alır olduğunu - ama sen önek operatörünü kullanırsanız bu işlev dönmeden önce uygulanır.

Eğer veriler birden çok sayfa arasında devam etmek istiyorsanız, sessions kullanmanız gerekir.