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.
Görev
Kolayİki satır girdi oku:
- Bir kişinin adı (ör.
Alice) - 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:
$baseSalaryadlı yerel bir değişken oluştur ve değerini1000olarak ayarla$baseSalaryile$bonusdeğ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 1000Kendin 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);
?>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