error handling perbaikan website

Mengatasi Error Web: PHP Parse error: syntax error, unexpected ‘?’, expecting variable (T_VARIABLE)

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.

See also  Kenali Beda EA-php7.4 dan ALT-php7.4 pada Cpanel

Rekomendasi saat ini:

WordPressPHP minimumPHP yang disarankan
6.5+7.48.2
6.6+7.48.2–8.3
6.87.48.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