Vecchia domanda, ma ecco alcune ulteriori informazioni.
Come indicato nelle altre risposte, PHP non supporta direttamente i parametri denominati. VBA è un'altra lingua che ha quel lusso.
In PHP, è possibile utilizzare un sostituto abbastanza ragionevole. manipolazione matrice di PHP è particolarmente buono, ed è possibile utilizzare un array associativo per passare una matrice di parametri, come segue:
function foo($parms=array()) {
$username = parms['username']?:'…';
$password = parms['password']?:'…';
$timeout = parms['timeout']?:'…';
}
foo(array('timeout'=>10));
Nota l'uso dell'operatore ?:
per consentire un semplice predefinito se l'elemento di matrice di ingresso doesn' Esistono
Non altrettanto chiari, ma i parametri denominati hanno un altro ruolo importante: consentono di lavorare con un numero elevato di opzioni senza un elenco troppo lungo di parametri ordinati.
Un modo alternativo di scrivere la funzione è quella di utilizzare la funzione di `estratto:
function foo($parms=array()) {
$username = '…';
$password = '…';
$timeout = '…';
extract($parms,EXTR_IF_EXISTS);
}
Qui i extract
funzione copia i valori nelle variabili, ma solo se sono già stati definiti. Ciò impedisce l'importazione di variabili che non conoscevi.
La risposta è no, anche se credo che al momento sia in discussione una [RFC] (https://wiki.php.net/rfc/named_params), ma è improbabile che vada oltre la fase di discussione ... . Credo che Facebook [hh] (https://t.co/I0RUiMMEsb) lo implementa anche se lo –
l'ho fatto, non funziona. – Justin
Scusa, ho frainteso quello che stavi chiedendo. –