Menu
CoddyTech

Değişken Kapsamı

Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası. Ders 67 / 71.

Bir fonksiyonun içinde oluşturulan değişkenler, dışındaki değişkenlerden tamamen bağımsızdır. Bu kavrama değişken kapsamı denir ve bunu anlamak, kodundaki kafa karıştırıcı hataları önler.

Bir fonksiyon içinde tanımlanan bir değişken yalnızca o fonksiyonun içinde var olur. Buna yerel değişken denir:

<?php
function sayHi() {
    $message = "Hello!";
    echo $message;
}

sayHi();
echo $message; // Hata: $message burada mevcut değil
?>

sayHi() içinde $message değişkeni oluşturulur ve işlev sona erdiğinde ortadan kaybolur. Ona dışarıdan erişmeye çalışmak hataya neden olur.

Benzer şekilde, bir fonksiyonun dışında tanımlanan değişkenler fonksiyonun içinde otomatik olarak kullanılabilir olmaz:

<?php
$name = "Alice";

function greet() {
    echo $name; // Hata: $name bu fonksiyonun içinde tanımlı değil
}

greet();
?>

$name ana kodda bulunsa da fonksiyon onu göremez. Bir fonksiyonda dışarıdaki değerleri kullanmak için bunları parametre olarak aktar: Bu, zaten öğrendiğin temiz ve önerilen yaklaşımdır.

Bu ayrım aslında yararlıdır. İşlevlerin programınızın diğer bölümlerindeki değişkenleri yanlışlıkla değiştirmeyeceği anlamına gelir; böylece kodunuz daha öngörülebilir olur ve hatalarını ayıklamak kolaylaşır.

challenge icon

Görev

Kolay

İki satır girdi oku:

  1. Bir kişinin adı (ör. Alice)
  2. Tam sayı olarak bir bonus miktarı (ör. 50)

İki parametre kabul eden calculateBonus adlı bir işlev oluştur: $name (string) ve $bonus (int).

İşlevin içinde:

  • $baseSalary adlı yerel bir değişken oluştur ve değerini 1000 olarak ayarla
  • $baseSalary ile $bonus değerlerini toplayarak toplam ücreti hesapla
  • [name] earns [total] biçiminde bir dize döndür

İşlevi girdi değerleriyle çağır ve döndürülen sonucu yazdır.

Örnek 1:

Girdiler Alice ve 50 ise çıktı şöyle olmalıdır:

Alice earns 1050

Örnek 2:

Girdiler Bob ve 200 ise çıktı şöyle olmalıdır:

Bob earns 1200

Örnek 3:

Girdiler Emma ve 0 ise çıktı şöyle olmalıdır:

Emma earns 1000

Kendin dene

<?php
// Girdiyi oku
$name = trim(fgets(STDIN));
$bonus = intval(fgets(STDIN));

// TODO: Aşağıda calculateBonus fonksiyonunu oluştur
// - Parametre olarak $name (string) ve $bonus (int) kabul etmeli
// - Değeri 1000 olan yerel bir $baseSalary değişkeni oluştur
// - Toplam ücreti hesapla ve "[name] earns [total]" değerini döndür



// Fonksiyonu çağır ve sonucu yazdır
echo calculateBonus($name, $bonus);
?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi