Menu
Coddy logo textTech

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, fonksiyonun dışındaki değişkenlerden tamamen ayrıdır. Bu kavrama değişken kapsamı denir ve bunu anlamak kodunuzdaki kafa karıştırıcı hataları önler.

Bir işlevin içinde tanımlanan bir değişken yalnızca o işlevin 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
?>

$message değişkeni sayHi() içinde oluşturulur ve işlev sona erdiğinde ortadan kaybolur. Ona dışarıdan erişmeye çalışmak bir 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 fonksiyon içinde tanımlı değil
}

greet();
?>

Ana kodda $name mevcut olsa da işlev onu göremez. Bir işlevde dışarıdaki değerleri kullanmak için bunları parametre olarak aktarın: Bu, zaten öğrendiğiniz temiz ve önerilen yaklaşımdır.

Bu ayrım aslında faydalıdır. Fonksiyonların programınızın diğer bölümlerindeki değişkenleri yanlışlıkla değiştirmemesini sağlar; böylece kodunuz daha öngörülebilir ve hatalarını ayıklamak daha kolay olur.

challenge icon

Görev

Kolay

İki satır girdi okuyun:

  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şturun: $name (string) ve $bonus (int).

İşlevin içinde:

  • Bir yerel $baseSalary değişkeni oluşturun ve bunu 1000 olarak ayarlayın
  • $baseSalary ve $bonus değerlerini toplayarak toplam ücreti hesaplayın
  • [name] earns [total] biçiminde bir dize döndürün

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

Örnek 1:

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

Alice earns 1050

Örnek 2:

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

Bob earns 1200

Örnek 3:

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

Emma earns 1000

Kendin dene

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

// TODO: Aşağıda calculateBonus fonksiyonunu oluştur
// - $name (string) ve $bonus (int) parametrelerini kabul etmeli
// - 1000 değerine ayarlanmış yerel bir $baseSalary değişkeni oluştur
// - Toplam ücreti hesapla ve "[name] earns [total]" 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