Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

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

Katılım
29 Kas 2020
Konular
218
Mesajlar
2,212
Çözüm
6
Online süresi
5mo 2d
Reaksiyon Skoru
2,492
Altın Konu
35
Başarım Puanı
226
Yaş
29
MmoLira
20,238
DevLira
51
Ticaret - 0%
0   0   0

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.

Ö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.
 
Paylaşım için teşekkürler :)
 
Eline sağlık! Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst