Dəyişənlər üzərində əməllər

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.

Leave a Reply