Erreur fatale : la classe 'NumberFormatter' est introuvable
P粉817354783
2023-08-16 16:29:06
<p>J'utilise exactement le même code depuis des lustres et je n'ai jamais eu de problèmes. Soudain, il a cessé de fonctionner. </p>
<p>J'ai entendu parler de ce problème sur Internet et apparemment, vous devez installer <code>PHP 5.3 ou supérieur</code>, ainsi que le plugin <code>PHP intl</code> J'ai les deux, mais chaque fois que j'utilise la fonction ci-dessous, j'obtiens toujours une erreur <code>Fatal Error : Not found error for class 'NumberFormatter'</code>: </p>
<pre class="brush:php;toolbar:false;">fonction format_item($value)
{
$format = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
return $format->formatCurrency($value, 'AUD');
}</pré>
<p>Voici également une partie de mon fichier <code>php.ini</code> montrant que j'ai installé le plugin <code>PHP intl</code>
<pre class="brush:php;toolbar:false;">[intl]
intl.default_locale = fr_FR
; Cette directive vous permet de produire des erreurs PHP lorsqu'une erreur
; se produit dans les fonctions intl. La valeur est le niveau de l'erreur produite.
; La valeur par défaut est 0, ce qui ne produit aucune erreur.
intl.error_level = E_WARNING</pre>
<p>J'ai également ajouté <code>extension=php_intl.dll</code> dans mon <code>php.ini</code> </p>
<p>Pourquoi est-ce que je reçois cette erreur ? </p>
Tout ce dont vous avez besoin est :
Pas besoin de changer php.ini ou de faire autre chose. (Testé sur Ubuntu 16.04 avec PHP 7).
La réponse la plus populaire ici est de décommenter un fichier .dll, ce qui ne résoudra jamais rien à moins que vous ne soyez sur un serveur Windows !
Cela semble être un problème très étrange, je l'ai résolu par :
J'ai mis à jour PHP dans mon Wamp via ce tutoriel. J'ai également mis à jour les paramètres de fuseau horaire dans
php.ini
. Lorsque j'ai mis à niveau, cela n'a pas fonctionné, je suis donc revenu à la version précédente de PHP et le problème a été résolu.Je ne sais absolument pas pourquoi cela a résolu le problème, mais cela a fonctionné pour moi.