Hər bir dəyişən üzərində tipindən asılı olmayaraq üç əsas əməliyyat etmək mümkündür.
Qiymətin mənimsədilməsi
Biz hər hansı bir dəyişənə digər dəyişənin qiymətini mənimsədə bilərik. Bu, həmçinin hər hansı bir funksiyanın qaytardığı qiymət də olar bilər. İxtiyari bir dəyişənə başqa dəyişənə istinad (reference) və ya sabit ifadə mənimsədə bilərik. Müstəsna yalnız new
operatoru ilə açıq inisializasiya edilən obyektlərdir. Əvəlki mövzularda deyildiyi kimi tipin dəyişdirilməsinə interpretator özü nəzarət edir. Mənimsədilmə zamanı dəyişənin əvvəlki qiyməti və ən əsası tipi haqqında məlumat itir və o, öz “yaradıcısının” dəqiq eynisi olur. Yəni biz massiv dəyişəninə birbaşa rəqəm mənimsətsək problem olmayacaq, ancaq massivin məlumatalrı itirilmiş olacaq.
Mövcudluğun yoxlanılması
Göstərilən dəyişənin mövcud olduğunu, yəni inisializasiya edilib edilmədiyini yoxlamaq mümkündür. Bu, PHP-in daxili isset()
operatoru ilə edilir. Nümunə:
<?php if(isset($my_var)){ echo "Dəyişən mövcuddur, qiyməti: $my_var"; } ?>
Bu an dəyişən mövcud deyilsə, yəni əvvəl heç bir yerdə bu dəyişənə qiymət mənimsədilməyibsə və ya əvvəldən unset()
vasitəsilə dəyişən əllə ləğv edilibsə isset()
yanlış – false
qaytarır, əks halda doğru – true
qaytarır.
Yadda saxlamaq vacibdir ki, inisializasiya edilməmiş dəyişənləri proqramda istifadə etmək olmaz, əks halda bu interpretator tərəfindən xəbərdarlıqla nəticələnəcək (çox güman ki, bu skriptdə məntiqi səhf olduğuna dəlalət edəcək). Bu xəbərdarlığı “söndürmək” olar və bu zaman inisializasiya edilməmiş dəyişənlər boş sətir dəyişənləri kimi qəbul edilmiş olacaq. Ancaq belə etmək məsləhət edilmir. Skripti belə halların baş verməməsi üçün yenidən yoxlamaq daha məqsədəuyğun hesab edilir.
Dəyişənin silinməsi
Dəyişənin yaddaşdan silinməsi unset()
operatoru ilə yerinə yetirilir. Bundan sonra dəyişən interpretatorun daxili siyahısından silinir, yəni proqram işini əvvəldən bu dəyişən heç yaradılmayıb kimi davam edir. Nümunə:
<?php // $var dəyişəni hələ mövcud deyil $var = "Mövcud dəyişən"; // artıq $var dəyişəni mövcuddur echo $var; // $var dəyişəninin ləğv edək unset($var); // $var dəyişəni artıq mövcud deyil echo $var; // Notice: Undefined variable ?>
Əslində adi dəyişənlərə unset()
tətbiq etmək nadir hallarda lazım gəlir. Ondan, daha çox məsələn, asosiativ massivin elementini ləğv etmək üçün istifadə etmək daha məqsədəuyğundur. Məsələn $my_arr
massivinin my_key
açar sözlü elementini ləğv etmək üçün unset($my_arr['my_key'])
əmri istifadə edilir.
Qeyd etmək lazımdır ki, isset()
, unset()
formatına görə adi daxili funksiyalara bənzəməsinə baxmayaraq, əslində operatorlardır. Həqiqətən də məsələn, unset()
funksiya olarsa məsələn, unset($my_arr['my_key'])
komandası zamanı parametr kimi massivin uyğun elementinin özü yox qiyməti ötürülərdi və nəticədə funksiya ilkin massivdə dəyişiklik edə bilməzdi.