🐤

パーフェクトPHP 第2章 PHPの言語仕様

2024/01/15に公開

パーフェクトPHP 第2章を読んで個人的に印象的だったor初めて知ったことのまとめ。

PHPブロック

PHPは開始タグ<?phpと終了タグ?>の中に記述する。
終了タグは省略可能であり、ライブラリやHTMLを含まないファイルの場合は、終了タグを記述しないことが推奨される。
これはPHPブロック以外は文字列として出力されるというPHPの仕様に起因する副作用を防ぐため。

<?php
echo '終了タグなしパターン'

なんとなくおまじないのように書いていたが、PHPブロック外が文字列として出力されるのは初めて知った。

コメント

1行コメントは//(C++), #(シェルスクリプト)行頭に書くことで可能。
ブロックコメントは/* */でできる。

//と/* */は知っていたが、#もいけるとは...

スーパーグローバル変数

変数名 意味
$GLOBALS すべてのグローバル変数への参照を持つ連想配列
$_SERVER スクリプトのヘッダ、パスなどの情報を持つ連想配列
$_GET 現在のスクリプトに渡されたURLパラメータの連想配列
$_POST 現在のスクリプトにHTTP POSTで渡された変数の連想配列
$_FILES 現在のスクリプトにアップロードされたファイルの情報を持つ配列
$_COOKIE HTTPクッキーから渡された変数の連想配列
$_REQUEST $_GET, $_POST, $_COOKIEをまとめた連想配列
$_SESSION 現在のスクリプトで使用できるセッション変数
$_ENV 現在実行されている環境変数の連想配列

たまにコードで見かけるので、改めてまとめてみた。$_GET, $_POST, $_COOKIEあたりは使ったことある。

マジック定数

マジック定数 意味
FILE ファイルのフルパスとファイル名
DIR そのファイルの存在するディレクトリ名
LINE そのファイル上の現在の行番号
FUNCTION 関数名。宣言時の関数名を大文字小文字で区別して返す
CLASS クラス名。宣言時のクラス名を大文字小文字で区別して返す
METHOD メソッド名。宣言時のメソッド名を大文字小文字で区別して返す
NAMESPACE 現在の名前空間の名前

マジック定数という言葉が初耳。FILE, __DIR__はソースコード上で見かけたことがあったが、ずっと?だったためもっと早く知りたかった。

Discussion