Php 8 Fonksiyonlarda Scope

Php 8 Fonksiyonlarda Scope

PHP 8'de scope (kapsam), bir değişkenin, fonksiyonun veya diğer yapıların nerede erişilebilir olduğunu belirler. PHP'de dört temel kapsam türü vardır: global, local (yerel), static ve function parameter (fonksiyon parametresi) kapsamları. Ayrıca, closure yapılarında kullanılan use anahtar kelimesi gibi bazı gelişmiş kapsam konuları da bulunmaktadır.

1. Global Kapsam

Global kapsam, betiğin en üst seviyesinde tanımlanan değişkenlerdir. Bu değişkenler, fonksiyonların dışında tanımlandığında globaldir. Fonksiyonlar varsayılan olarak bu değişkenlere doğrudan erişemez; erişmek için global anahtar kelimesi veya $GLOBALS süper globali kullanılır.

Örnek:

$isim = "PHP"; // Global değişken function isimYaz( ) { global $isim; // Global değişkene erişim sağlanıyor echo $isim; } isimYaz(); // "PHP" çıktısını verir

$GLOBALS Süper Globali Kullanımı:

$isim = "PHP"; function isimYaz( ) { echo $GLOBALS['isim']; // Global değişkene erişim sağlanıyor } isimYaz(); // "PHP" çıktısını verir

2. Yerel (Local) Kapsam

Bir fonksiyon veya metodun içinde tanımlanan değişkenler, yerel (local) kapsamda olur. Bu değişkenler, sadece tanımlandıkları fonksiyonun içinde erişilebilir. Fonksiyon dışında erişilemezler.

Örnek:

function merhaba( ) { $isim = "PHP"; // Yerel değişken echo $isim; } merhaba(); // "PHP" çıktısını verir echo $isim; // Hata! $isim değişkeni global değil, fonksiyon dışında tanımlı değil

3. Static Kapsam

PHP'de bir değişkenin fonksiyonlar arasında kalıcı olmasını sağlamak için static anahtar kelimesi kullanılır. static değişkenler, fonksiyon sonlandırıldığında değerini kaybetmez, bir sonraki çağrıldığında önceki değeriyle devam eder.

Örnek:

function sayici( ) { static $sayi = 0; // Değeri sadece ilk seferde atanır $sayi++; echo $sayi; } sayici(); // 1 çıktısını verir sayici(); // 2 çıktısını verir sayici(); // 3 çıktısını verir

Bu örnekte, $sayi değişkeni, fonksiyon her çalıştığında kaldığı yerden devam eder.

4. Fonksiyon Parametreleri (Function Parameters)

Bir fonksiyonun parametreleri, fonksiyon çağrıldığında o parametrelerin değerlerini yerel olarak alır. Parametreler, fonksiyonun içinde tanımlandıkları için yerel kapsamda sayılır.

Örnek:

function toplama( $a, $b ) { return $a + $b; // Parametreler yerel kapsamda } echo toplama(2, 3); // 5 çıktısını verir

5. Closure ve use Anahtar Kelimesi

PHP'de closure (anonim fonksiyonlar), kendi kapsamlarına sahiptir. Ancak closure içinde bir dış değişkene erişmek için use anahtar kelimesi kullanılır.

Örnek:

$mesaj = "Merhaba"; $anonimFonksiyon = function( ) use ( $mesaj ) { echo $mesaj; }; $anonimFonksiyon(); // "Merhaba" çıktısını verir

use ($mesaj) ifadesi ile closure, dışarıdaki $mesaj değişkenine erişim sağlar.

6. Global ve Yerel Kapsamın Birlikte Kullanımı

Fonksiyonlar hem global hem de yerel değişkenlerle etkileşime geçebilir, ancak bu, global değişkenlere doğrudan erişim sağlanmadığından dikkatli yapılmalıdır.

Örnek:

$globalDegisken = "Dünya"; function fonksiyon( ) { $yerelDegisken = "Merhaba"; global $globalDegisken; echo "$yerelDegisken, $globalDegisken!"; } fonksiyon(); // "Merhaba, Dünya!" çıktısını verir

7. Superglobals (Süperglobal Kapsam)

PHP'de bazı özel değişkenler global kapsamda her yerden erişilebilir. Bunlara süperglobal değişkenler denir ve $GLOBALS, $_POST, $_GET, $_SESSION, $_COOKIE, vb. gibi önceden tanımlanmıştır.

Örnek:

$_GET['isim'] = "PHP"; function getIsim( ) { echo $_GET['isim']; // Süperglobal değişkene her yerden erişim sağlanır } getIsim(); // "PHP" çıktısını verir

Sonuç

PHP 8'de kapsam yönetimi, değişkenlerin hangi bölgelerde geçerli olduğuna odaklanır. Fonksiyonlarda kullanılan değişkenler, fonksiyon parametreleri ve global değişkenler farklı kapsam kurallarına tabidir. static, global, ve use gibi yapılarla kapsamı daha karmaşık durumlarda kontrol etmek mümkündür.



Yorum Ekle

Üzerine gel