LoginSignup
4
1

More than 5 years have passed since last update.

phpでswitch文の「switch($hoge)★ここ★{case0:」に改行いれるとエラーになる。

Posted at

いきなりですが質問です、下記コードはphpで動作するでしょうか?

ひどいコードですが、ご了承ください。。汗

gomennasaicode.php

<?php
$i = 0;
?>

<?php
switch($i){
?>
<?php
 case 0:
?>
<p>aaa</a>

<?php
break;
}

はい、これは動作します。

aaa
と表示される。

では、こちらはどうでしょうか?

gomennasaicode.php

<?php
$i = 0;
?>

<?php
switch($i){
?>

<?php
 case 0:
?>
<p>aaa</a>

<?php
break;
}

。。。

image.png

エラー内容
PHP Parse error:  syntax error, unexpected '', expecting case (T_CASE) or default (T_DEFAULT) or '}' in /usr/share/nginx/〜/a.php on line 9

普通にswitch文書いていれば気づかないかもしれませんが、
phpとhtmlをごちゃまぜベタ書きしているとぶちあたる可能性が。。汗

<?php
switch($i){
?>
★★ここに改行が入っているか入っていないかで、エラーでページが表示されない!!
<?php
case 0:
?>

差分はこんな感じ

image.png

長年PHPさわっていますが、このエラーは初めてかも

ためした環境 PHP 7.0.3

4
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1