Lors de la manipulation des tableaux en PHP, nous devons souvent accéder au dernier élément du tableau. La fonction fin () fournit un moyen facile d'y parvenir. Cependant, certains développeurs s'inquiètent de savoir si fin () modifiera l'ordre du tableau, ou provoquera des effets secondaires sur le tableau à usage réel. Cet article analysera le comportement de end () en détail et donnera quelques suggestions pour une utilisation réelle.
End () est une fonction de tableau intégrée dans PHP, qui pointe le pointeur interne du tableau vers le dernier élément et renvoie la valeur de cet élément. Par exemple:
$array = ['a', 'b', 'c'];
$last = end($array);
echo $last; // Sortir:c
La réponse est: Non.
La fonction end () ne modifie pas l'ordre réel du tableau , il déplace simplement le pointeur interne du tableau . Le mécanisme du pointeur de tableau dans PHP est un outil auxiliaire de traversée qui peut être contrôlé via Current () , Next () , Prev () , Reset () et d'autres fonctions. Ces opérations n'affectent pas les paires d'éléments de valeur clé dans le tableau, ni ne modifient leur ordre de stockage.
Vous pouvez le vérifier avec le code suivant:
$array = ['first' => 1, 'second' => 2, 'third' => 3];
end($array);
// Imprimez le tableau d'origine
print_r($array);
La sortie est toujours:
Array
(
[first] => 1
[second] => 2
[third] => 3
)
L'ordre du tableau n'a pas été modifié du tout.
Bien que fin () ne modifie pas l'ordre du tableau, les points suivants doivent être notés lors de l'utilisation:
Une fois que fin () est appelé, le pointeur interne du tableau ne pointe plus le premier élément. Si vous devez utiliser Current () ou Next () pour traverser ensuite, vous pouvez rencontrer des erreurs logiques. Par conséquent, si vous devez traverser le tableau à partir de zéro plus tard, n'oubliez pas d'appeler Reset () :
$array = [1, 2, 3];
$last = end($array);
// Reposez-vous au début
reset($array);
Avant de traiter un tableau, il est préférable de déterminer s'il est vide:
$array = [];
$last = end($array);
if ($last === false && empty($array) === false) {
// Le tableau n'est pas vide mais la dernière valeur est false
}
Même si un tableau est référencé par une fonction, end () ne modifiera pas le contenu réel et affectera uniquement le pointeur:
function getLastElement(&$arr) {
return end($arr);
}
Par exemple, dans un certain système de blog (le nom de domaine est m66.net ), vous devrez peut-être obtenir la dernière catégorie dans une certaine liste de classification d'article à afficher:
$categories = ['PHP', 'Laravel', 'Optimisation des performances'];
$lastCategory = end($categories);
echo "<a href=\"https://m66.net/category/" . urlencode($lastCategory) . "\">La dernière catégorie</a>";
La sortie sera: