par
Hubert Roksor » 16 janv. 2007, 18:29
C'est juste, UTF-8 ou pas,
$var[0] et
substr($var, 0, 1) renverront la même chose. C'est à dire que sous PHP6 aucun problème (pour peu d'avoir activé "unicode_semantics"), mais sous PHP3/4/5 vous n'êtes pas sûr que cela fonctionne en UTF-8. À noter que le caractère
# fait partie d'
ASCII et grâce aux
propriétés d'UTF-8 il est identique en ASCII, ISO-8859-1 ou UTF-8. En clair, peu importe la version de PHP, peu importe le reste de la chaîne, peu importe que la chaîne soit en ISO-8859-1 ou UTF-8, il sera toujours possible de vérifier qu'elle commence bien par
# en utilisant
$var[0].
Quant à la "dépréciation" dont on parle, c'est l'utilisation des accolades
{} plutôt que des crochets
[]. N'utilisez que les crochets.
C'est juste, UTF-8 ou pas, [b]$var[0][/b] et [b]substr($var, 0, 1)[/b] renverront la même chose. C'est à dire que sous PHP6 aucun problème (pour peu d'avoir activé "unicode_semantics"), mais sous PHP3/4/5 vous n'êtes pas sûr que cela fonctionne en UTF-8. À noter que le caractère [b]#[/b] fait partie d'[url=http://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange]ASCII[/url] et grâce aux [url=http://fr.wikipedia.org/wiki/UTF-8#Avantages]propriétés d'UTF-8[/url] il est identique en ASCII, ISO-8859-1 ou UTF-8. En clair, peu importe la version de PHP, peu importe le reste de la chaîne, peu importe que la chaîne soit en ISO-8859-1 ou UTF-8, il sera toujours possible de vérifier qu'elle commence bien par [b]#[/b] en utilisant [b]$var[0][/b].
Quant à la "dépréciation" dont on parle, c'est l'utilisation des accolades [b]{}[/b] plutôt que des crochets [b][][/b]. N'utilisez que les crochets.