Ralat maut: Kelas 'NumberFormatter' tidak ditemui
P粉817354783
2023-08-16 16:29:06
<p>Saya telah menggunakan kod yang sama ini sejak sekian lama dan tidak pernah mengalami sebarang masalah. Tiba-tiba ia berhenti berfungsi. </p>
<p>Saya membaca tentang masalah ini di Internet dan nampaknya anda perlu memasang <code>PHP 5.3 atau lebih tinggi</code>, serta memasang pemalam <code>PHP intl</code> Saya mempunyai kedua-duanya, tetapi apabila saya menggunakan fungsi di bawah, saya masih mendapat <kod>Ralat Maut: Tidak ditemui ralat untuk kelas 'NumberFormatter'</code>:</p>
<pre class="brush:php;toolbar:false;">function format_item($value)
{
$format = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
kembalikan $format->formatCurrency($value, 'AUD');
}</pre>
<p>Selain itu, berikut ialah sebahagian daripada fail <code>php.ini</code> yang menunjukkan bahawa saya telah memasang pemalam <code>PHP intl</code>
<pre class="brush:php;toolbar:false;">[intl]
intl.default_locale = fr_FR
; Arahan ini membolehkan anda menghasilkan ralat PHP apabila terdapat ralat
; berlaku dalam fungsi intl Nilai adalah tahap ralat yang dihasilkan.
; Lalai ialah 0, yang tidak menghasilkan sebarang ralat.
intl.error_level = E_AMARAN</pre>
<p>Saya juga menambahkan <code>extension=php_intl.dll</code> dalam <code>php.ini</code> </p>
<p>Mengapa saya mendapat ralat ini? </p>
Apa yang anda perlukan ialah:
Tidak perlu menukar php.ini atau melakukan apa-apa lagi. (Diuji pada Ubuntu 16.04 dengan PHP 7).
Jawapan paling popular di sini adalah untuk anda menyahkomen fail .dll, yang tidak akan menyelesaikan apa-apa melainkan anda berada di pelayan Windows!
Ini nampaknya masalah yang sangat pelik, saya menyelesaikannya dengan:
Saya meningkatkan PHP dalam Wamp saya melalui tutorial ini. Saya juga mengemas kini tetapan zon waktu dalam
php.ini
. Apabila saya menaik taraf ia tidak berfungsi jadi saya kembali ke versi PHP sebelumnya dan masalah itu telah diselesaikan.Saya langsung tidak tahu mengapa ini menyelesaikan masalah, tetapi ia berkesan untuk saya.