Clever
O'zgarmaslar va vazifalari davomi

reset()
Bu operatorimiz, qandaydir masiv (o'zgarmaslarni) ichidagi ko'rsatgichni (kursor , cursor) masiv elementlarining eng birinchisiga olib borib qo'yadi, va birinchi element qiymatini qaytaradi.
Misol:
Kod · PHP3 qator
$fruits=array("apple", "orange", "banana");

$a_fruits=reset($fruits); //a_fruits=apple


each()
Each() operatori har gal ishlatilganda ikki ish qiladi, yani kursor turgan o'zgavchanni qaytaradi, va kursorni keyin masiv elementiga o'tkazadi. Va belgilangan o'zgarivchanga ikkita son yuboradi, yani Misolga qarang:
Kod · PHP9 qator
$spices=array("parsley", "sage", "rosemary");

$a_spice=each($spices);

print "$a_spice[0] $a_spice[1] <br>";

$a_spice=each($spices);

print "$a_spice[0]  $a_spice[1]";
shunda oynangizga "0 parsley 1 sage" yozuvi chiqadi, bu degani, avalambor birinchi elementni o'qib unga tegishli bo'lgan kalit va ma'lumotni a_spice'ga yozadi yani a_spice[0]'da kaliti, a_spice[1]'da esa uni qiymati yoziladi. Keyin esa ikkinchi element o'qilib (sage) u ham a_spice'ga yoziladi.


end()
Kursorni masivning eng oxiriga olib borib qo'yadi.
end(array masiv);

next()
Hudi each() operatori kabidir faqatgina farqi kursorni bitta oldinga surgandan keyin, yangi turgan yeridagi elementni qaytaradi.

prev()
Next()'ning tamoman teskarisi.

array_walk()
Juda ham qulay operator, ya`ni kim qiladigan ishi, qandaydir funktsiyaga, qandaydir o'zgarmaslarni yuborishi mumkindir. Keling bir masiv'da qaytarilib kelgan o'zgarmaslar bo'lsa ularni o`chirib tashlashini qiluvchi funktsiya, yoki bir kod yozaylik.
Kod · PHP19 qator
function delete_dupes($element){

static $last="";

if ($element==$last) {

unset($element);

} 

$last=$element

}$emails=array("bom@bom.ru", "test@test.ru", "bom@bom.ru");

sort($emails);

reset($emails);

array_walk($emails, "delete_dupes");

shunda sizda emails="bom@bom.ru", "test@test.ru" qoladi, ko'rganingizdek ikta bir hil o'zgarmasni olib tashladi