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 goneGenel 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; // 118global 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(); // 3Kapanış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. SmithReferansla 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; // 15Ok 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 nowHı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
globalile içe aktarılmalıdır - Alternatif olarak
$GLOBALS['name']kullanın staticdeğişkenler, bir fonksiyon içindeki çağrılar arasında varlığını sürdürür- Kapanışlar, dış değişkenleri
useile 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
- İşlev Tanımlama ve Çağırma
- Varsayılan ve Değişken Sayıda Parametreler
- Değişken Kapsamı: Yerel ve Genel
- Anonim İşlevler ve Kapanışlar