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.
Görev
Kolayİki satır girdi okuyun:
- Bir kişinin adı (ör.
Alice) - 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
$baseSalarydeğişkeni oluşturun ve bunu1000olarak ayarlayın $baseSalaryve$bonusdeğ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 1000Kendin 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);
?>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
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma OperatörleriEşitlik ve KimlikMantıksal Operatörler 1. BölümMantıksal Operatörler 2. BölümTekrar - Basit Mantık2Değişkenler ve Veri Türleri
SayılarDizeler ve Tırnak İşaretleriBoolean DeğerleriAdlandırma KurallarıTekrar - Değişken BaşlatmaBoş DeğişkenlerDize BirleştirmeKullanıcı Girdisi AlmaFarklı Türlere Dönüştürme5Koşullu Mantık
If İfadesiIf - ElseÜçlü OperatörNull Coalescing OperatörüSwitch İfadesiTekrar - Karar Verme3Temel Operatörler
Aritmetik OperatörlerMod Alma OperatörüÜs Alma OperatörüBirleşik AtamaArtırma/AzaltmaOperatör ÖnceliğiTekrar - Basit HesaplamalarDize OperatörleriKendi başına pratik yap: Online PHP derleyicisi