0Pricing
PHP Academy · Ders

Değişken Kapsamı: Yerel ve Genel

PHP'nin işlev kapsamını nasıl yalıttığını ve global anahtar sözcüğünü nasıl kullanacağınızı öğrenin.

Değişken Kapsamı: Yerel ve Genel, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

PHP'de Değişken Kapsamı

PHP'de her değişkenin bir kapsamı vardır — bu, değişkenin erişilebilir olduğu kod bölgesidir.

  • Fonksiyonların dışında oluşturulan değişkenler genel kapsamdadır
  • Fonksiyonların içinde oluşturulan değişkenler yerel kapsamdadır
  • C veya JavaScript'in aksine PHP'de blok kapsamı yoktur; PHP NOT blok kapsamına sahip değildir

Yerel Kapsam

Bir fonksiyonun içindeki değişkenler yereldir — fonksiyon döndüğünde ortadan kalkarlar:

<?php
function compute(): void {
    $result = 42;  // local variable
    echo $result;  // 42
}

compute();
echo $result ?? 'undefined';  // undefined — $result is gone

Genel Değişkenler Otomatik Olarak Görünür Değildir

Birçok dilin aksine, PHP fonksiyonları varsayılan olarak genel değişkenleri göremez — bunları açıkça içe aktarmanız gerekir:

<?php
$message = 'Hello';

function printMessage(): void {
    echo $message ?? 'not visible';  // 'not visible'
    // $message from global scope is not accessible here
}

global Anahtar Sözcüğü

Genel bir değişkene erişmek için bir fonksiyonun içinde global $varName kullanın:

<?php
$counter = 0;

function increment(): void {
    global $counter;
    $counter++;
}

increment();
increment();
echo $counter;  // 2

$GLOBALS Süper Genel Değişkeni

$GLOBALS, tüm genel değişkenleri tutan bir dizidir — global anahtar sözcüğü kullanılmadan her yerden erişilebilir:

<?php
$total = 100;

function addTax(): void {
    $GLOBALS['total'] *= 1.18;  // 18% tax
}

addTax();
echo $total;  // 118

global Kullanımından Neden Kaçınmalı

global kullanımı, fonksiyonların sınanmasını ve hatalarının ayıklanmasını zorlaştıran gizli bağımlılıklar oluşturur. Değerleri argüman olarak geçirmeyi tercih edin:

<?php
// Bad
$db = new PDO(/* ... */);
function getUsers(): array {
    global $db;
    return $db->query('SELECT * FROM users')->fetchAll();
}

// Good
function getUsers(PDO $db): array {
    return $db->query('SELECT * FROM users')->fetchAll();
}

Statik Değişkenler

Bir static değişken, işlev çağrıları arasındaki değerini korur; ancak işlev içinde yerel olmaya devam eder:

<?php
function callCount(): int {
    static $count = 0;
    return ++$count;
}

echo callCount();  // 1
echo callCount();  // 2
echo callCount();  // 3

Kapanışlar ve Değişken Yakalama

Kapanışlar (anonim fonksiyonlar), dış değişkenleri use ile yakalayabilir:

<?php
$prefix = 'Mr';

$greet = function(string $name) use ($prefix): string {
    return "$prefix. $name";
};

echo $greet('Smith');  // Mr. Smith

Referansla Yakalama

Kapanışın dış değişkeni değiştirebilmesi için use (&$var) ile referans üzerinden yakalayın:

<?php
$total = 0;

$add = function(int $n) use (&$total): void {
    $total += $n;
};

$add(10);
$add(5);
echo $total;  // 15

Ok Fonksiyonları

PHP 7.4'teki ok fonksiyonları (fn =>), dış kapsamı otomatik olarak değer yoluyla yakalar; use kullanmanız gerekmez:

<?php
$multiplier = 3;
$nums = [1, 2, 3, 4];

$result = array_map(fn($n) => $n * $multiplier, $nums);

print_r($result);  // [3, 6, 9, 12]

İç İçe Fonksiyonlar

PHP, bir fonksiyonun içinde başka bir fonksiyon tanımlamanıza izin verir; ancak iç fonksiyon, dış fonksiyon çağrıldıktan sonra genel olarak erişilebilir hale gelir:

<?php
function outer(): void {
    function inner(): void {
        echo 'inner called';
    }
}

// inner(); // Fatal: undefined before outer() is called
outer();
inner(); // works now

Hızlı Kontrol

Bir PHP fonksiyonunun içindeki static değişken ne yapar?

Özet: Değişken Kapsamı

PHP'deki temel kapsam kuralları:

  • Fonksiyonların kendilerine ait yerel kapsamları vardır
  • Genel değişkenler global ile içe aktarılmalıdır
  • Alternatif olarak $GLOBALS['name'] kullanın
  • static değişkenler, bir fonksiyon içindeki çağrılar arasında varlığını sürdürür
  • Kapanışlar, dış değişkenleri use ile yakalar
  • Ok fonksiyonları değerleri otomatik olarak yakalar

Sıkça Sorulan Sorular

“Değişken Kapsamı: Yerel ve Genel” dersi ücretsiz mi?

Evet — “Değişken Kapsamı: Yerel ve Genel” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“Değişken Kapsamı: Yerel ve Genel” dersinde ne öğreneceğim?

PHP'nin işlev kapsamını nasıl yalıttığını ve global anahtar sözcüğünü nasıl kullanacağınızı öğrenin. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

PHP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Değişken Kapsamı: Yerel ve Genel” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İşlev Tanımlama ve Çağırma
  2. Varsayılan ve Değişken Sayıda Parametreler
  3. Değişken Kapsamı: Yerel ve Genel
  4. Anonim İşlevler ve Kapanışlar
← PHP Academy Sayfasına Dön