質問: phpでcookieを削除したいのですがエラーが出てできません どうすればいいですか? エラー Parse error: syntax error, unexpected '''' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ')' in cookie.php ``` ```
回答: あなたがコードとしてご質問に掲載の文字列を、文字コードが確認できるエディターに貼り付けるなどして調べると、単なる空白に見える一部の文字が普通の空白(U+0020 SPACE)ではなく、NBSP(U+00A0 NO-BREAK SPACE)になっているのがわかります。(HTMLの文字実体参照で、` `と書いたときに表示される方の空白。) ``` setcookie('user_name', '', time() - 3600); ^^ この2文字はU+00A0 NO-BREAK SPACE ``` どのような文字エンコーディングでソースコードを書いているかにもよるのですが、例えばUTF-8ならU+00A0は、0xC2 0xA0の2バイトで表されます。このどちらもPHPでは識別子として有効なバイトなので、こんな状態になっているのと同じエラーが発生しているのだと思われます。 ``` setcookie('user_name',abab '', time() - 3600); ``` (↑こんなのを見つけたら`abab`はなんか余分だと思って、すぐ消しますよね。) 見かけ上空白になっているところを全部一旦削除して、必要な空白はNBSPにならないよう注意して(一部のOSやツールだと、Alt+SPACEなんかで簡単にNBSPが入力できてしまいます)、必要な箇所に普通の空白を入れ直してみてください。 見た目にはわかりませんが、↓こちらはエラーにならない空白を使ってます。 ``` setcookie('user_name', '', time() - 3600); ```