これだけはやめて欲しい PHP7のアンチパターン(初心者向け)

これだけはやめて欲しい PHPの書き方

PHPって他の言語に比べると簡単で、初心者がはじめにとっつきやすい言語なことからこれはやめて欲しい・・・ って書き方をされていることがあります。

そこで今回はPHPで初心者にこれだけは気をつけて欲しいことをいくつか紹介していきます。

なお、ソースコードのPHPは7.2、ターミナルで実行していますのでご了承ください。

シングルコーテーションとダブルコーテーション

PHPは文字列を”と””の二つで囲むことができます。

以下のような書き方です。

この書き方なんですが、ご覧の通りどちらも動作します。

ただ文字列の中に変数を定義すると以下になります。

上記からわかるようにシングルコーテーションは変数を展開しませんが、ダブルコーテーションで囲んだ変数は展開されます。

ですので、

文字列のみの場合はシングルコーテーション

文字列の中に変数を展開する場合はダブルコーテーションと区別して使いましょう。

プログラミングは統一性が重要です。

どちらも展開されるから良いのではなく、しっかりと使い分けることを意識しましょう。

==と===を使い分けよう

上記では$testと$test2を比較しています。

str型とint型の1を比較できていることがわかります。

では次はどうでしょう。

== から === にしたことでif文を通過していないことがsuccessの出力がないことからわかります。

==は型の比較をしません。

先ほどの$test、$test2はint型str型で異なる型ですが、型の比較をしていないためif文がtrueで通過しています。

===を使おう

==を用いて比較すると予期せぬ比較でもtrueで通過してしまう可能性があります。

例えば、以下ではtrueを通過してsuccessが出力されます。

boolean型str型のtrueの比較ですが、型の比較をしていないためsuccessが出力されています

こうなると思わぬところで予期せぬエラーが起こり、バグの温床となるため比較をする際は型の比較もする===を使いましょう。

安心してください、そのif文短くできますよ

例えば、以下のようなif文が存在するとします。

当然ですが、’true’と’true’の比較は通るのでsuccessが出力されています。

ただ、このような比較は三項演算子でスッキリさせることができます。

nullの比較をより短くする

以下のようなnull判定をするif文があるとします。

上記のif文は以下のように短くすることができます。

NULL合体演算子という書き方で、PHP7の方は積極的に使いましょう。

なるべく短くすることを心がけることで脱・初心者に近づけますよ。

マサ

文系出身のWEBエンジニア
メインの開発言語はPHP
リモートワークで旅をすることが夢です。

マサをフォローする
engineering
マサをフォローする
サーフエンジニアチャンネル

コメント

%d人のブロガーが「いいね」をつけました。