Apa T_VARIABLE tak terduga di PHP?

Jawaban:

193

Mungkin ada titik koma atau tanda kurung yang hilang sebelum garis yang Anda tempelkan.

Tampaknya baik-baik saja bagi saya; setiap string diizinkan sebagai indeks array.

rajutan
sumber
Oh kamu ingatkan aku, braketnya luput. Kenapa disebut T_VARIABLE?
omg
2
Pesan kesalahan memberi tahu Anda apa yang ada (tidak terduga), bukan apa yang hilang. Dan ada variabel, jadi ia memberitahu Anda persis seperti itu.
OregonGhost
2
Karena yang tidak terduga $listadalah variabel.
Michael Krelin - peretas
2
karena php mengharapkan braket dan menemukan variabel, itulah mengapa ia memberi tahu Anda 'variabel tak terduga'
knittl
25

Bisa juga jalur lain. PHP tidak selalu tepat.

Mungkin Anda hanya kehilangan titik koma pada baris sebelumnya.

Cara mereproduksi kesalahan ini, taruh ini dalam file bernama a.php:

<?php
  $a = 5
  $b = 7;        // Error happens here.
  print $b;
?>

Menjalankannya:

eric@dev ~ $ php a.php

PHP Parse error:  syntax error, unexpected T_VARIABLE in
/home/el/code/a.php on line 3

Penjelasan:

Pengurai PHP mengonversi program Anda menjadi serangkaian token. SEBUAHT_VARIABLE adalah Token berjenis VARIABLE. Ketika parser memproses token, ia mencoba memahaminya, dan melontarkan kesalahan jika menerima variabel di mana tidak ada yang diizinkan.

Dalam kasus sederhana di atas dengan variabel $b, parser mencoba memproses ini:

$a = 5 $b = 7;

Pengurai PHP melihat $ b setelah 5 dan mengatakan "itu tidak terduga".

dusoft
sumber
2

Dalam kasus saya, ini adalah masalah versi PHP.

File .phar yang saya gunakan tidak kompatibel dengan PHP 5.3.9. Mengalihkan interpreter ke PHP 7 berhasil memperbaikinya.

Zank
sumber