【PHP日記】

自分の知識不足を悟った末、なるべく1日一回、Webに関する知識を書いていくだけのブログ。

PHP雑学⑨ 【31日目】

PHPを学び始めた素人目線での、大事だったり大事じゃなかったりする雑知識メモ、その⑨です。


($変数名 !== false)を明示するかどうか

『値がfalseでなければ上の文が実行されるif文』は2通りの記述方法があります。

if($loginSuccess) {
    echo 'ログイン成功';
  } else {
    echo 'ログイン失敗';
  }

このコードの書き方は、$loginSuccessがブール値を保持することが明確である場合に適しています。

変数がtrueかfalseのみを保持するなら、こちらの簡潔な形式が好ましいです。


  if($loginSuccess !== false) {
    echo 'ログイン成功';
  } else {
    echo 'ログイン失敗';
  }

一方、こちらの書き方は、$loginSuccessがブール値以外の値を取り得る場合や、falseとの厳密な比較が重要である場合に適しています。

例えば、$loginSuccessがnull0''などのfalsyな値*1を取り得る場合、これらをfalseと区別したいときには、明示的な表記をするのが好ましいです。



『header()』のあとには『exit()』を

header('Location: ' . Bootstrap::ENTRY_URL . 'complete.php');
exit();

exit()は、スクリプトの実行をその時点で終了させるコマンドです。
リダイレクトを行う際は、その後ろにあるコードが不用意に実行されることを防ぐために、記述しておくのが好ましいです。



twigを使うときのパス指定はphpファイル側が基準になる

CSSファイルをtwigにリンクするとき、パス指定はTwigテンプレートの位置ではなく、サーバー上で動作しているPHPファイルの位置(最終的にブラウザに送信されるHTML)が基準になります。

たとえば、次のようなディレクトリ構造があったとします。

- public_html/
  - index.php
  - css/
    - style.css
  - templates/
    - page.twig

「index.php」から「page.twig」を読み込み、page.twig内で「style.css」をリンクする場合、CSSへのパス指定はこうなります。

<link rel="stylesheet" href="css/style.css">

このとき「page.twig」がどのフォルダにあるかは関係ありません。



以上です。


*1:真偽値において"偽"とみなされる値のこと。