Argumentele Denumite (Named Arguments) permit transmiterea valorilor către o funcție sau metodă specificând explicit numele parametrului urmat de două puncte (numeParametru: $valoare), în locul ordinii poziționale stricte stabilite în definiția funcției.
Scenarii de utilizare a argumentelor denumite
<?php
declare(strict_types=1);
// 1. Omiterea parametrilor impliciți din funcțiile native PHP
$html = '<a href="test">Legătură</a>';
// În PHP 7, pentru a schimba al 4-lea parametru trebuia să trimiți valorile implicite pentru 2 și 3:
// htmlspecialchars($html, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8', false);
// În PHP 8, specifici direct parametrul dorit:
$sigur = htmlspecialchars($html, double_encode: false);
// 2. Apelarea metodelor de clasă cu parametri ordonați liber
function configureazaCookie(
string $nume,
string $valoare = '',
int $expirare = 0,
string $cale = '/',
bool $securizat = true,
bool $doarHttp = true
): void {
// Configurare cookie...
}
// Apel curat, auto-documentat și lizibil:
configureazaCookie(
nume: 'sesiune_auth',
valoare: 'tk_98124',
doarHttp: true,
securizat: true
);
Avantaje Majore
- Claritate extremă a codului: Elimină întrebarea clasică „Ce însemna al treilea argument boolean
truedin funcția asta?”. - Independență de ordine: Parametrii numiți pot fi trimiși în orice ordine după parametrii poziționali.
- Refactoring sigur: Adăugarea de noi parametri opționali într-o funcție existentă nu mai sparge apelurile care folosesc argumente denumite.