W3docs

pos()

In PHP, la funzione pos() è una funzione array integrata che restituisce il valore dell'elemento alla posizione corrente del puntatore interno dell'array.

In PHP, la funzione pos() è una funzione array integrata che restituisce il valore dell'elemento alla posizione del puntatore interno dell'array. Ogni array PHP ha un puntatore interno che tiene traccia dell'elemento "corrente"; pos() legge il valore sotto quel puntatore senza spostarlo.

pos() è un alias di current() e i due si comportano in modo identico. Poiché gli alias possono essere sconsigliati o rimossi nelle versioni future di PHP, current() è il nome da preferire nel codice nuovo — pos() è documentato qui principalmente per farlo riconoscere nei progetti legacy.

Questa pagina tratta la sintassi della funzione, cosa restituisce (incluso il caso limite dell'array vuoto), come si relaziona alle altre funzioni per i puntatori e quando usare il puntatore sia la scelta giusta.

Sintassi della funzione pos()

pos() accetta un singolo argomento — l'array da ispezionare — e restituisce il valore dell'elemento a cui il puntatore interno attualmente punta.

pos(array $array): mixed
  • $array — l'array da cui leggere. Viene passato per riferimento, quindi la variabile array deve essere assegnabile (non è possibile passare un letterale).
  • Valore restituito — il valore dell'elemento corrente, oppure false se l'array è vuoto o il puntatore è andato oltre l'ultimo elemento.

Poiché un elemento può legittimamente contenere il valore false, non usare mai il valore restituito da solo per verificare "è fallito?". Usa key() (che restituisce null oltre la fine) quando hai bisogno di rilevare in modo affidabile la fine di un array.

Esempio di utilizzo della funzione pos()

Vediamo alcuni esempi pratici di come la funzione pos() può essere usata per recuperare il valore alla posizione corrente del puntatore interno.

Esempio di utilizzo della funzione pos()

<?php

$colors = ['red', 'green', 'blue'];

// Set the current position to the first element
reset($colors);

// Retrieve the value of the element at the current position
echo pos($colors) . '-'; // Output: red

// Move the current position to the next element
next($colors);

// Retrieve the value of the element at the current position
echo pos($colors) . '-'; // Output: green

// Move the current position to the next element
next($colors);

// Retrieve the value of the element at the current position
echo pos($colors); // Output: blue

In questo esempio, abbiamo un array chiamato $colors, che contiene tre elementi. Impostiamo il puntatore interno al primo elemento usando reset() e poi recuperiamo il valore in quella posizione usando pos(). Avanziamo quindi il puntatore con next() e leggiamo di nuovo il valore, ripetendo ancora una volta per raggiungere l'ultimo elemento. Il punto chiave: pos() stesso non sposta mai il puntatore — solo reset(), next(), prev() e end() lo fanno.

Lettura oltre la fine

Una volta che il puntatore viene avanzato oltre l'ultimo elemento, pos() restituisce false. Ecco perché false è ambiguo come "valore corrente" — può significare sia "l'elemento è false" sia "siamo andati oltre la fine":

php— editable, runs on the server

Quando hai realmente bisogno di sapere se hai raggiunto la fine, abbina pos() a key(): key() restituisce null oltre l'ultimo elemento, mentre una chiave reale (0, 1, …) indica che il puntatore è ancora valido.

pos() e le altre funzioni per i puntatori

pos() è uno dei componenti del toolkit dei puntatori interni di PHP. Ogni funzione svolge un ruolo specifico:

FunzioneCosa fa
current()Restituisce il valore corrente (il nome standard; pos() è il suo alias).
key()Restituisce la chiave corrente invece del valore.
next()Avanza il puntatore, poi restituisce il nuovo valore corrente.
prev()Sposta il puntatore indietro, poi restituisce il nuovo valore corrente.
reset()Porta il puntatore al primo elemento.
end()Porta il puntatore all'ultimo elemento.

Quando usare il puntatore interno

Per la maggior parte degli attraversamenti di array, un ciclo foreach è più chiaro e sicuro — non tocca affatto il puntatore interno dell'array. Ricorri a pos()/current() e affini solo quando hai bisogno di un controllo manuale e preciso sulla posizione: ad esempio, per esaminare l'elemento corrente all'interno di un ciclo while (key($arr) !== null), o per scorrere un array in due direzioni. Se vuoi semplicemente ogni elemento in ordine, preferisci foreach.

Conclusione

La funzione pos() restituisce il valore al puntatore interno di un array senza spostarlo ed è un alias legacy di current(). Nel codice nuovo preferisci current(); combinala con next(), prev(), reset() e end() per scorrere manualmente un array — e ricorda che un valore restituito false può indicare sia un valore false sia la fine dell'array, quindi usa key() quando la distinzione è importante.

Pratica

Pratica
Qual è l'uso corretto e la funzionalità della funzione pos() in PHP?
Qual è l'uso corretto e la funzionalità della funzione pos() in PHP?
Was this page helpful?