Edited at

PHP T_ENCAPSED_AND_WHITESPACE Parse error

More than 1 year has passed since last update.


エラーが取れず悩んだ覚書

php のバージョンは7.2.1 です。

ブラウザーはChrome 64 32ビットです。


test11.php

<?php

if('POST' == $_SERVER['REQUEST_METHOD']){
print "Hello, ". $_POST['my_name'];
} else {

print <<<__HTML__
<html><body>
<form action="$_SERVER['PHP_SELF']?" method="POST">
your name: <input type="text" name="my_name">
<br>
<input type="submit" value="Say Hello">
</form>

</body></html>
__HTML__;
}
?>


このプログラムをブラウザーから実行すると以下のエラーが出ます。

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\test11.php on line 8


解決法1

'PHP_SELF'のシングルコーテーションで括るのをやめる。


correct.php

<form action="$_SERVER[PHP_SELF]?" method="POST">



解決法2

$_SERVER['PHP_SELF']を{} で括る。


correct.php

<form action="{$_SERVER['PHP_SELF']}?" method="POST">


どちらでも思った動作となりました。