Pernahkan kalian mengalami error website seperti di atas? Histori kejadiannya biasanya setelah melakukan migrasi web ke hosting baru.
Error yang muncul seperti berikut:
PHP Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE)
in /wp-includes/compat-utf8.php on line 47
99% penyebabnya adalah versi PHP di server terlalu lama dibandingkan versi WordPress yang Anda gunakan.
Analisa Error
Error:
unexpected '?', expecting variable (T_VARIABLE)
menunjukkan bahwa parser PHP tidak mengenali sintaks yang ada pada file tersebut.
Biasanya pada baris sekitar 47 terdapat kode seperti:
private ?string $text;
atau
function example(?string $str)
atau
?int
Sintaks ?string, ?int, ?array, dll disebut Nullable Types.
Fitur ini baru didukung mulai:
- PHP 7.1 ke atas
Jika server Anda masih menggunakan:
- PHP 5.6
- PHP 7.0
maka akan muncul Parse Error tersebut.
Penyebab yang paling sering
1. PHP terlalu lama ⭐⭐⭐⭐⭐
Contoh:
WordPress 6.8
tetapi hosting masih memakai
PHP 5.6
atau
PHP 7.0
Maka WordPress tidak bisa dijalankan.
2. File WordPress tidak lengkap
Misalnya update WordPress gagal.
Sebagian file sudah versi terbaru
sementara sebagian masih lama.
Akibatnya file compat-utf8.php tidak cocok dengan file lainnya.
3. Upload WordPress manual yang corrupt
Misalnya:
FTP terputus
atau
Overwrite sebagian file.
4. Hosting melakukan downgrade PHP
Kadang setelah migrasi hosting,
PHP berubah otomatis dari
8.1
menjadi
7.0
WordPress langsung error.
Cara Memperbaiki
Langkah 1 (Paling Penting)
Cek versi PHP.
Buat file:
<?php
phpinfo();
atau melalui cPanel
Select PHP Version
atau
MultiPHP Manager
Lihat versinya.
Jika hasilnya:
PHP 5.6
atau
PHP 7.0
atau
PHP 7.1
Segera upgrade ke
PHP 8.1
atau
PHP 8.2
atau
PHP 8.3
Langkah 2
Pastikan WordPress cocok dengan versi PHP.
Rekomendasi saat ini:
| WordPress | PHP minimum | PHP yang disarankan |
|---|---|---|
| 6.5+ | 7.4 | 8.2 |
| 6.6+ | 7.4 | 8.2–8.3 |
| 6.8 | 7.4 | 8.2–8.3 |
Langkah 3
Jika PHP sudah benar
Upload ulang folder
wp-includes
dan
wp-admin
dari paket WordPress yang sama versinya.
Jangan overwrite folder
wp-content
karena berisi plugin dan theme.
Langkah 4
Periksa file yang error
Buka
wp-includes/compat-utf8.php
lihat sekitar baris 47.
Kalau ada seperti:
private ?array $cache;
atau
?string
berarti memang membutuhkan PHP minimal 7.1.
Langkah 5
Jika baru selesai update WordPress
Download ulang WordPress versi yang sama dari situs resmi, lalu upload ulang:
wp-admin/
wp-includes/
index.php
wp-settings.php
wp-load.php
tanpa menghapus:
wp-content/
wp-config.php
Jangan lakukan
Jangan mengedit
compat-utf8.php
dengan menghapus tanda ?.
Karena:
- akan muncul error lain
- WordPress tetap tidak kompatibel
- update berikutnya akan rusak lagi



