(PHP 4, PHP 5, PHP 7, PHP 8)
current — Retorna o elemento atual em um array
Todo array tem um ponteiro interno para o elemento "atual", o qual é inicializado para apontar para o primeiro elemento inserido em um array.
array
O array.
A função current() simplesmente retorna o valor do elemento do array que está sendo apontado pelo ponteiro interno. Ela não move o ponteiro de forma alguma. Se o ponteiro interno aponta para além do final da lista de elementos ou o array está vazio, current() retorna false
.
Esta função pode retornar o valor booleano false
, mas também pode retornar um valor não booleano que pode ser avaliado como false
. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.
Versão | Descrição |
---|---|
8.1.0 | Chamar esta função em objects tornou-se defasado. Converta o object para um array usando get_mangled_object_vars() primeiro ou, em vez disso, use os métodos fornecidos por uma classe que implementa Iterator, como ArrayIterator. |
7.4.0 | Instâncias de classes SPL agora são tratadas como objetos vazios que não possuem propriedades em vez de chamar o método da interface Iterator com o mesmo nome desta função. |
Exemplo #1 Exemplo do uso de current() e amigos
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport); // $mode = 'foot';
$mode = end($transport); // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';
$arr = array();
var_dump(current($arr)); // bool(false)
$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>
Nota: Os resultados de chamar current() em um array vazio e em um array, cujo ponteiro interno aponta para além do fim dos elementos, são indistinguíveis de um elemento bool
false
. Para percorrer adequadamente um array que pode conter elementosfalse
, veja a estrutura de controle foreach. Para ainda usar current() e checar adequadamente se o valor é realmente um elemento do array, a key() do elemento current() deve ser verificada como estritamente diferente denull
.