Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Php 8.5 Adlandırılmış Argümanlarla Dizi Açma (Array Unpacking)
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
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.
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.
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.