İlan
06 Haz 2026 20 çevrimiçi üye Duyurular
Ana Sayfa Web Geliştirme
Ana Sayfa Forum Web Geliştirme Php 8.5 Adlandırılmış Argümanlarla Dizi Açma (Arra...
İlan Yan banner placeholder

Php 8.5 Adlandırılmış Argümanlarla Dizi Açma (Array Unpacking)

oguzhan65 16.04.2026 14:27 780 görüntüleme 2 cevap
Son Mesaj
oguzhan65
Üye
Üye
Katılım06 Mar 2026
Konular6
Mesajlar62
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
16.04.2026 14:27 #1
PHP 8, fonksiyonlara ve metotlara argüman iletmek için daha esnek bir yol sağlayan adlandırılmış argümanlar (named arguments) kavramını tanıttı. Bu özellik, argümanları pozisyona göre değil, ada göre belirtmenize olanak tanıyarak kodun okunabilirliğini ve sürdürülebilirliğini artırır. Adlandırılmış argümanlarla birlikte, ilişkisel dizileri fonksiyonlara adlandırılmış argümanlar olarak iletmek için dizi açma (array unpacking) özelliğini de kullanabiliriz.

6.5.1. Adlandırılmış Argümanlara Kısa Bir Bakış ​

Dizi açmaya geçmeden önce, adlandırılmış argümanları kısaca hatırlayalım. PHP 8'de, fonksiyon ve metot argümanlarını ismen belirtebilirsiniz:

Örnek:
PHP:
function sendMessage($to, $message, $from) {
    // Fonksiyon mantığı burada
}

// Geleneksel pozisyonel kullanım:
// sendMessage('Bob', 'Hello, Bob!', 'Alice');

// Adlandırılmış argümanlarla kullanım (sıra önemli değil):
sendMessage(from: 'Alice', message: 'Hello, Bob!', to: 'Bob');
Adlandırılmış argümanlar, parametre adlarını açıkça belirterek, fonksiyon çağrısını anlamayı kolaylaştırır.

6.5.2. Adlandırılmış Argümanlarla Dizi Açma​

Dizi açma (üç nokta `...` ile), bir ilişkisel dizinin anahtar-değer çiftlerini, bir fonksiyon veya metodun adlandırılmış argümanları olarak iletmenize olanak tanır. Bu, özellikle bir fonksiyona geçirmek istediğiniz değerlerin bir dizide toplandığı durumlarda çok kullanışlıdır.

Örnek:
PHP:
function createPerson($name, $age, $city) {
    echo "Kişi oluşturuldu: $name, $age yaşında, $city'li.";
}

$personData = [
    'name' => 'Alice',
    'age' => 30,
    'city' => 'Wonderland',
];

// Dizi açma kullanarak adlandırılmış argümanları iletme
createPerson(...$personData);
// Çıktı: Kişi oluşturuldu: Alice, 30 yaşında, Wonderland'li.
Buradaki `...$personData` sözdizimi, ilişkisel diziyi açar ve anahtarlarını (`name`, `age`, `city`) fonksiyondaki ilgili parametre adlarıyla eşleştirir.

6.5.3. Varsayılan Değerler ve Dizi Açma​

Adlandırılmış argümanlar için varsayılan değerleri, dizi açma ile birlikte kullanabilirsiniz. İlişkisel dizide varsayılan değere sahip bir parametreye karşılık gelen bir anahtar yoksa, **varsayılan değer** kullanılır.

Örnek:
PHP:
function createPerson($name = 'Unknown', $age = 0, $city = 'Unknown') {
    echo "Kişi: $name, $city";
}

$personData = [
    'name' => 'Alice',
    'age' => 30,
    // 'city' anahtarı burada eksik
];

// 'city' parametresi, dizide bulunmadığı için varsayılan değeri ('Unknown') alacaktır.
createPerson(...$personData);
// Çıktı: Kişi: Alice, Unknown
Bu durumda, 'city' parametresi, ilişkisel dizide mevcut olmadığı için varsayılan olarak 'Unknown' değerini kullanacaktır.

6.5.4. Dizi Açma ve Variadic Fonksiyonlar (...$messages) ​

Değişken sayıda argüman kabul eden variadic fonksiyonlar da adlandırılmış argümanlarla dizi açmadan yararlanabilir. Dizi açma, dinamik sayıda argümanı variadic bir fonksiyona aktarmanıza olanak tanır.

Örnek:
PHP:
function logMessages(...$messages) {
    foreach ($messages as $msg) {
        echo "LOG: $msg" . PHP_EOL;
    }
}

$logData = [
    'messages' => ['Error: Something went wrong', 'Info: Task completed'],
];

// Variadic fonksiyona argüman dizisini açarak iletiyoruz.
// Not: Burada adlandırılmış argüman yerine pozisyonel argümanlar açılıyor.
logMessages(...$logData['messages']);
/*
Çıktı:
LOG: Error: Something went wrong
LOG: Info: Task completed
*/
Bu örnekte, `...$logData['messages']` sözdizimi, mesaj dizisini logMessages() fonksiyonunun değişken sayıda argümanı olarak açar.

PHP 8'in adlandırılmış argümanlarla dizi açma özelliği, verilere fonksiyonlara ve metotlara iletmek için güçlü ve esnek bir yol sunar. Bu, kod okunabilirliğini artırır ve ilişkisel dizileri fonksiyon argümanları olarak kullanmayı basitleştirir.
accountbuyer
Üye
Üye
Katılım20 Oca 2026
Konular5
Mesajlar55
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
27.04.2026 05:56 #2
Paylaşım için teşekkürler
WebServisi
Üye
Üye
Katılım18 Mar 2026
Konular4
Mesajlar63
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
29.04.2026 11:00 #3
Eline sağlık! Paylaşım için teşekkürler.
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
İlan Yan banner placeholder