在PHP中定义简单字符串不会工作..

I am a PHP programmer since 12 years now, but i run out of my possibilities now. I never had such issue, and i dont know, what's going wrong there.

It is really simply. I want to declare the number 84367 as a variable.

I minimized my script to 1 line, in a new php file, but.. what is going wrong?!

<?php
$x = "84367"‬; 
?>

results in

Parse error: syntax error, unexpected '‬' (T_STRING) in C:\xampp\htdocs\me7dtc\test.php on line 2

Why ?

Simple. Your code contains a unicode character.

Copy and paste this exactly as shown:

<?php
// $x = "84367"‬; 
               ^ unicode hidden character between the last quote and the semi-colon‬.

$x = "84367";
?>

The commented line is the one that contains the unicode character.

  • To be more specific, it's the (hidden) &#8236; character between the last quote and the semi-colon.

A.k.a.: "POP DIRECTIONAL FORMATTING".

Consult the following links on this:

This would likely not have shown it when encoded/editing under an UTF-8 environment, but will in ANSI.

In an ANSI encoded environment, it would have shown ‬ immediately following the last quote.

More precisely:

<?php
$x = "84367"‬; 
?>

You more than likely were under an UTF-8 coding environment where it is needed for you, but were unable to see it. You could temporarily convert your file to ANSI then switch back to UTF-8 in order to pick up on (hidden) characters such as these.