credo che non ha alcun nome speciale. Stai solo accedendo al primo elemento di un array restituito. In molte lingue non c'è nulla di speciale in una funzione che restituisce un array.
Nel tuo caso, sei non applicare []
(indicizzazione) Operatore a una funzione chiamata. Invece, lo si applica all'array restituito. Con la precedenza, sembra così.
var firstElement = (getSomeValues())[0];
Quindi non c'è niente di speciale.
Tuttavia, c'è un altro modello di ottenere il primo elemento, in relazione alla programmazione funzionale. Ad esempio:
($first_value, @rest_of_list) = getSomeValues(); # Perl
let first::rest = getSomeValues() in ... (* OCaml *)
Questo salva il primo valore di un elenco (tecnicamente, non di un array) in $first_value
, e il resto sono memorizzati nella variabile matrice. Quella variabile di matrice può essere omessa e quindi si ottiene solo il primo valore.
($first_value) = getSomeValues(); # Perl
let first::_ = getSomeValues() in ... (* OCaml *)
Il concetto più generico, di cui quello mostrato sopra è solo un caso particolare, è pattern matching (more on pattern matching). In alcuni linguaggi funzionali (nessuno dei precedenti, ma in Haskell, ad esempio) è diverso: in realtà calcola solo il primo elemento e non fa valutare il resto dell'elenco.
Tuttavia, non c'è nulla che possa qualificarsi come corrispondenza del modello nel codice procedurale che hai mostrato.
E '[Array Dereferenziare] (http://wiki.php.net/rfc/functionarraydereferencing) e un duplicato di [elemento dell'array Accesso da chiamata di funzione in PHP] (http: // StackOverflow. it/questions/2282051/access-array-element-da-function-call-in-php) – Gordon
@Gordon: a pensarci bene, non penso che sia davvero un duplicato dal momento che sto chiedendo come si chiama quella domanda sta chiedendo perché non funziona in PHP. Ma vabbè, almeno ora so come si chiama. – BoltClock
@BoltClock true, ma ottieni la risposta alla tua leggendo l'altra domanda, quindi mentre semanticamente non è un duplicato, contiene abbastanza informazioni per rispondere alle tue. – Gordon