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.
Görev
Kolayİki satır girdi oku:
- Bir kişinin adı (örneğin,
Alice) - 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
$baseSalaryoluştur ve onu1000'e ayarla $baseSalaryve$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 1000Kopya 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);
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators