63461
HTMLとPHPタグを合わせて記述する際のコーディングルール(インデント及び改行)について、参考になりそうなものを探しています。好きに書けば良いとは思いますが、この辺りについて言及しているページはありますか？

案a  
・phpタグの後、改行しない  
・phpが連続している場合も、phpタグを書く

```

    <?php if($japan): ?>  
      <header><?php echo $language; ?></header>
    <?php endif; ?> 
    <?php if($america): ?>
      <?php $language = str_replace('こんにちは', 'hello', $language); ?>
      <header><?php echo $language; ?></header>
    <?php endif; ?>
    
```

案a2  
・phpタグの後、改行しない  
・phpが連続している場合は、なるべくphpタグを書かない

```

    <?php if($japan): ?>  
      <header><?php echo $language; ?></header>
    <?php endif; 
    if($america):
      $language = str_replace('こんにちは', 'hello', $language); ?>
      <header><?php echo $language; ?></header>
    <?php endif; ?>
    
```

案b  
・phpタグの後、改行するが半角空けない

```

    <?php
    if($japan):
    ?>  
      <header>
        <?php
        echo $language;
        ?>
      </header>
    <?php
    endif;
    ?> 
    <?php
    if($america):
    ?>
      <?php $language = str_replace('こんにちは', 'hello', $language); ?>
      <header>
        <?php
        echo $language;
        ?>
      </header>
    <?php
    endif;
    ?>
    
```

案b2  
・条件分岐phpタグの後、改行するが半角空けない

```

    <?php
    if($japan):
    ?>  
      <header><?php echo $language; ?></header>
    <?php
    endif;
    ?> 
    <?php
    if($america):
    ?>
      <?php $language = str_replace('こんにちは', 'hello', $language); ?>
      <header><?php echo $language; ?></header>
    <?php
    endif;
    ?>
    
```

案c  
・phpタグの後、改行して半角空ける

```

    <?php
      if($japan):
    ?>  
      <header>
        <?php
          echo $language;
        ?>
      </header>
    <?php
      endif;
    ?> 
    <?php
      if($america):
    ?>
      <?php
        $language = str_replace('こんにちは', 'hello', $language);
      ?>
      <header>
        <?php
          echo $language;
        ?>
      </header>
    <?php
      endif;
    ?> 
    
```

案c2  
・条件分岐phpタグの後のみ、改行して半角空ける

```

    <?php
      if($japan):
    ?>  
      <header><?php echo $language; ?></header>
    <?php
      endif;
    ?> 
    <?php
      if($america):
    ?>
      <?php $language = str_replace('こんにちは', 'hello', $language); ?>
      <header><?php echo $language; ?></header>
    <?php
      endif;
    ?> 
    
```
CC BY-SA 4.0
2020-02-28T22:50:34.113
63442
2020-02-29T15:41:23.300
2020-02-29T15:05:36.670
32986
7886
question
php coding-style
HTMLとPHPタグを合わせて記述する際のコーディングルール(インデント及び改行)について
こんにちは、特にPSRに記述のない事柄なのでスクリプトとして認識されれば自由な記法で問題ないと思います。細かいことを言うと
ifの直後と条件式の後には空白をひとついれます。`if (hoge) {`のように。

<http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html>

公式のドキュメントでは案aの記法になっているようです。

<https://www.php.net/manual/ja/language.basic-syntax.phpmode.php>

以下は個人の見解となります

  * ショートハンド記法を利用して`endif;`で閉じるよりは、波ブラケット'{'を使って記述したほうがいいと思いました(他にPHPスクリプトがある場合整合性がとれるため作業者の負担が減る)
  * やむを得ない理由がないのであれば、なんらかのフレームワークかテンプレートエンジンを採用して、PHPをHTML中に埋め込む形は避けた方が、見通しもよくなりセキュアになります。素のPHPでスクリプトの無害化は困難です。
CC BY-SA 4.0
2020-02-29T14:51:33.810
63461
2020-02-29T15:41:23.300
2020-02-29T15:41:23.300
37777
37777
63442
answer