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:
  1. $fruits=array("apple", "orange", "banana");
  2. $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:
  1. $spices=array("parsley", "sage", "rosemary");
  2. $a_spice=each($spices);
  3. print "$a_spice[0] $a_spice[1] <br>";
  4. $a_spice=each($spices);
  5. 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.
  1. function delete_dupes($element){
  2. static $last="";
  3. if ($element==$last) {
  4. unset($element);
  5. }
  6. $last=$element
  7. }$emails=array("bom@bom.ru", "test@test.ru", "bom@bom.ru");
  8. sort($emails);
  9. reset($emails);
  10. array_walk($emails, "delete_dupes");

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