4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHPノート】基本構文

Last updated at Posted at 2024-11-15

はじめに

PHPを習得する必要が出てきたので、公式ドキュメントを参考にしながら学習をスタートさせました。
インプットの定着のためのアウトプットとして自分の言葉で書き残していこうと思います📝
 
筆者レベル感

  • PHPの名前は知ってる
  • フレームワークには、Laravelとかがあることは知ってる
  • でも実際コードを読んだこと、書いたことは一切ない
    • (→ 学習の第一歩としてProgateと公式の簡易チュートリアルをやりました)
  • これまでに触れてきたのはJavaScript, TypeScript, Python

PHPタグ

  • 基本のPHPタグ
    <?php echo "<?php と ?> で囲みます。" ?>
    

 

  • PHPタグの短縮表記
    <?= "これは<?php echo を短縮した書き方です。" ?>
    <?= " <?php ?> だけを短縮して書くと <? ?> になります。" ?>
    <? echo "これでもこの文章を出力することができます。" ?>
    <?php echo 'XHTMLまたはXMLドキュメントの中でPHPコードを扱う場合 → <?php ?> を使う' ?>
    

 

  • 短縮した表記は設定で有効/無効を切り替えできる
    • デフォルト値 = 1(有効)
    • 0にすることで無効化できる
      short_open_tag=0
      

 

  • ファイルの中にPHPコードしかない場合、閉じタグは省略する
    <?php
    echo "このファイルにはPHPコードしか書かれていません";
    echo "この時は閉じタグは省略しちゃいます";
    echo "省略が推奨される理由は以下のとおりです";
    echo "終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるから";
    

HTMLとPHP

PHPはHTMLに組み込んで使用可能です。

sample
<p> ここは普通のHTMLです。 </p>
<?php echo "ここはPHPコードとしてパーサが認識してパースします" ?>
<p> ここは普通のHTMLです。パーサはここは無視します。 </p>

条件式を用いる時には以下のように書きます。
いずれも処理内容自体は同じものを、違う方法で記述しています。

※コメントにてご指摘いただいた箇所を加筆修正いたしました。(代替構文と通常構文のやっていることは同じという表現の修正)

  • 代替構文: 多くのテキストを出力する場合などではこの書き方が○
    • HTMLとPHPが混在するため、改行やスペースが出力に影響を与える可能性がある
    • endifのあとの ; を忘れない!
      if_else
      <?php if($arg): ?>
          <p>条件式がtrueならこの文章が表示される</p>
      <?php else: ?>
          <p>条件式がfalseの時にはこっちの文章が表示される</p>
      <?php endif; ?>
      

 

  • 通常構文: 冗長になりやすいので短め、簡潔な記述のときに使用が○
    • echo を使って出力するため、改行やスペースを制御できる
      if_else
      <?php
      if($arg) {
          echo "<p>条件式がtrueの時にこの文章が表示される</p>";
      } else {
          echo "<p>条件式がfalseの時にはこっちの文章が表示される</p>";
      }
      ?>
      

ソースコード内のコメントの書き方

comment
<?php
echo '//で単一行のコメントが挿入できます'; // ここはコメント部分です(C++型)
echo '#を単一行コメントに使用することもできます'; # ここもコメント部分です(シェル型)
echo '/* ~~~~ */ で複数業のコメントを挿入できます';
/* 複数行用のコメント
   もう一行分のコメント */
?>

スクリーンショット 2024-11-15 11.27.25.png

スクリーンショット 2024-11-15 11.27.58.png

HTMLに囲まれたPHPコードの中でコメント // # を使うと...

comment
<h1>HTMLの中で <?php # echo "コメントを入れてみます"; ?> コメントを入れてみます </h1>
<p> この場合の出力: HTMLの中で コメントを入れてみます</p>

<h2>C++型のコメントも <?php // echo "HTMLの中に"; ?>入れてみます </h2>
<p> この場合の出力: C++型のコメントも 入れてみます</p>

スクリーンショット 2024-11-15 11.37.49.png

スクリーンショット 2024-11-15 11.26.40.png

複数行用のコメント /* ~~ */ が入れ子になってしまうと...

comment
<?php
/*
 echo "コメントを入れ子にしてみると?"
 /* 問題が起こります */
*/

スクリーンショット 2024-11-15 11.30.35.png

スクリーンショット 2024-11-15 11.30.54.png
入れ子になっているコメントの閉じ部分 */ (スクショ67行目)でコメントが終わりと判断されて、
最後に残された */ (スクショ68行目) がエラーの原因となる。

おわりに

都度コードの挙動など確認しながら記述していますが、
もし間違いや誤解を招きそうな表現などなどありましたら
大変お手数ですがご指摘をいただけますと幸いです🙏

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?