Varsayılan parametre değerleri
Parametreye varsayılan değer atayıp çağrıda atlanabilmesini öğrenirsin.
Varsayılan değer
Bir parametreye varsayılan değer (default value) atayabilirsin. Bu, çağrıda o parametreye argüman verilmezse kullanılan değerdir. Atama = ile parantez içinde yazılır.
Örnek: function greet($name = "Misafir") { echo $name; }. greet("Ayşe") çağrısı "Ayşe" yazdırır; greet() çağrısı ise argüman vermediği için varsayılan "Misafir" değerini kullanır ve "Misafir" yazdırır.
İsteğe bağlı parametre
Varsayılan değerli parametreler isteğe bağlıdır: çağrıda argüman verilmeyebilir. Bu, çoğu çağrıda aynı olan değerler için pratiktir.
Örneğin function logMessage($msg, $level = "INFO") { echo "[" . $level . "] " . $msg; } tanımında $level isteğe bağlıdır. logMessage("Başladı") çağrısı $level'i atlar ve "INFO" kullanır; logMessage("Hata", "ERROR") çağrısı ise $level'e "ERROR" geçirir. İsteğe bağlı parametreler her zaman zorunlu parametrelerden sonra yazılır.
Uygulama Günlük kaydı yazdır
logMessage adında, $msg ve $level = "INFO" parametreli bir fonksiyon tanımla. Gövdede echo "[" . $level . "] " . $msg . "\n"; yaz. Sonra önce logMessage("Sistem başladı"), sonra logMessage("Bağlantı koptu", "ERROR") çağrılarını yap.
Örnek çözümü göster
function logMessage($msg, $level = "INFO") { ... } tanımla, gövdeye echo "[" . $level . "] " . $msg . "\n"; yaz. İlk çağrı tek argümanlı logMessage("Sistem başladı");, ikinci çağrı iki argümanlı logMessage("Bağlantı koptu", "ERROR"); olsun.
Örnek çözüm:
<?php
// logMessage fonksiyonunu tanımla ve iki kez çağır
function logMessage($msg, $level = "INFO") {
echo "[" . $level . "] " . $msg . "\n";
}
logMessage("Sistem başladı");
logMessage("Bağlantı koptu", "ERROR");
Kendini test et
-
Varsayılan değeri tamamla
function greet($name____) { echo $name; }Cevabı göster
function greet($name = "Misafir") { echo $name; } -
Aşağıdaki kodun çıktısı nedir?
function greet($name = "Misafir") { echo $name; } greet();- $name
- (boş çıktı)
- Misafir
- PHP hatası
Cevabı göster
Misafir — Doğru. Argüman verilmediği için $name varsayılan 'Misafir' değerini alır.
-
Varsayılan değer kavramlarını eşle
- Varsayılan değer
- Çağrıda argüman yoksa kullanılır
- $name = "Misafir"
- Varsayılan değer sözdizimi
- İsteğe bağlı
- Varsayılanı olan parametre