Menu
Coddy logo textTech

Variable Scope

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

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

Değişken $message, sayHi() içinde oluşturulur ve fonksiyon sona erdiğinde kaybolur. Dışarıdan erişmeye çalışmak bir hata oluşturur.

Benzer şekilde, bir fonksiyon dışında tanımlanan değişkenler, otomatik olarak fonksiyon içinde mevcut değildir:

<?php
$name = "Alice";

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

greet();
?>

Her ne kadar $name ana kodda mevcut olsa da, fonksiyon onu göremez. Bir fonksiyonda dışarıdaki değerleri kullanmak için, onları parametre olarak geçirin—bu, zaten öğrendiğiniz temiz, önerilen yaklaşımdır.

Bu ayrım aslında yardımcıdır. Bu, fonksiyonların programınızın diğer kısımlarındaki değişkenleri kazara değiştirmeyeceği anlamına gelir, kodunuzu daha öngörülebilir ve hata ayıklaması daha kolay hale getirir.

challenge icon

Görev

Kolay

İki satır girdi oku:

  1. Bir kişinin adı (örneğin, Alice)
  2. Bir bonus miktarı tam sayı olarak (örneğin, 50)

Adı calculateBonus olan bir fonksiyon oluştur ki iki parametre kabul etsin: $name (string) ve $bonus (int).

Fonksiyon içinde:

  • Yerel bir değişken $baseSalary oluştur ve onu 1000'e ayarla
  • $baseSalary ve $bonus'u toplayarak toplam maaşı hesapla
  • [name] earns [total] biçiminde bir string döndür

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

Örnek 1:

Eğer girdiler Alice ve 50 ise, çıktı şu olmalı:

Alice earns 1050

Örnek 2:

Eğer girdiler Bob ve 200 ise, çıktı şu olmalı:

Bob earns 1200

Örnek 3:

Eğer girdiler Emma ve 0 ise, çıktı şu olmalı:

Emma earns 1000

Kopya kağıdı

Fonksiyon içinde oluşturulan değişkenler yerel değişkenlerdir ve sadece o fonksiyon içinde var olurlar. Bu kavrama değişken kapsamı denir.

Fonksiyon içinde tanımlanan bir değişken, dışarıdan erişilemez:

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

sayHi();
echo $message; // Error: $message doesn't exist here
?>

Benzer şekilde, fonksiyon dışında tanımlanan değişkenler, fonksiyon içinde otomatik olarak mevcut değildir:

<?php
$name = "Alice";

function greet() {
    echo $name; // Error: $name is not defined inside this function
}

greet();
?>

Fonksiyonda dışarıdaki değerleri kullanmak için, onları parametre olarak geçirin.

Kendin dene

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

// TODO: Aşağıda calculateBonus fonksiyonunu oluşturun
// - $name (string) ve $bonus (int) parametrelerini kabul etmeli
// - Yerel bir $baseSalary değişkeni oluşturun ve 1000'e ayarlayın
// - Toplam maaşı hesaplayın ve "[name] earns [total]" döndürün



// Fonksiyonu çağırın ve sonucu yazdırın
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