为什么这会导致PHP语法错误?

The following code:

$a = '?>';

is fine but the commented version of the same code:

//$a = '?>';

causes a syntax error but

 /*$a = '?>';*/

is fine.

It doesn't make much sense to me how //$a = '?>'; is translated.

From the PHP Docs:

The "one-line" comment styles only comment to the end of the line or the current block of PHP code, whichever comes first.

(my emphasis)

The comment comprises the block of characters

//$a = '

But the ?> terminates the comment, which means you have a line of PHP reading just

';

which is invalid PHP