エラーが取れず悩んだ覚書
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">
どちらでも思った動作となりました。