1~

Minter Coder's Blog

4-PHP değişkenlerde Scope

2021-03-01

Arkadaşlar merhaba bu derste php değişkenlerde scope kısmına değineceğiz.

Öncelikle değişkenler konusunu işledik  , şuan da ise değişkenlerde scope alanı variable scope kısmını göreceğiz 3 çeşit scope(alan) var.

  1. Local variable
  2. Global variable
  3. Static variable

Local ve Global Variables : Yerel değişken anlamına gelir ve function içerisinde kullanılan değişkenlere denir. Ilerde göreceğimiz fonksiyonlara şimdi burada örnek vermek istiyorum.Fonksiyonları matematikde ki fonksiyonlara benzetebilirsiniz.Bir şey atıyorsun karşılığında bir şeyler alıyosun.

örnek:

<?php
    $i = 5;
    function myName(){
        $myNameIs = "Kerem"; // local variable
        echo $myNameIs;
    }
    myName();

Yukarıda görüldüğü gibi myName isimli functionun içerisinde myNameIs adlı bir değişken oluşturduk ve değerini Kerem olarak atadık buradaki myNameIs değişkenimiz local variable yani yerel değişkendir dışarıdaki $i değişkenimize ise 5 değerini atadık ve kendisi de global variable yani evrensel değişkendir bunu functionun içerisinde kullanmak için de global keywordünü kullanmalıyız onun dışında normal olarak da kullanabiliriz . Ör:

<?php
    $i = 5; // global variable
    function myName(){
        echo "global keywordü kullanılmadan önce i değeri : " . $i . "<br><br>";
        global $i;
        echo "global keywordü kullandıktan sonra i değeri : " . $i . "<br><br>";
        $myNameIs = "Kerem"; // local variable
        echo $myNameIs;
    }
    myName();

Static Variables : Arkadaşlar biz bazen functionun çalışmasından sonra bir değişkeni yine saklamak isteriz.Bunun için static keywordünü kullanarak static değişken oluştururuz örnek :

Görüldüğü gibi...

<?php
    function myStaticFunction(){
        $i = 0;
        static $j = 0;
        $j++; // j 'yi bir arttır
        $i++; // i 'yi bir arttır        
        echo "i value is : " . $i . " j value is : " . $j . "<br><br>";
    }
    myStaticFunction();
    myStaticFunction();
    myStaticFunction();