[PHP]パーフェクトPHP読書メモ その1

パーフェクトPHP (PERFECT SERIES 3)
小川 雄大
技術評論社
2010-11-12



『パーフェクトPHP』を1年ぶりに読み返したら、色々再発見があったのでメモっておきます。

----------

「どんなプログラムでもいえることですが、テストコードを見ることは内部の挙動を知る大きな手助けとなります」 – p.34

フレームワークの内部の理解、テストコード読解から初めてみようかなと思いました。

「var_dump()関数は(中略)可変長引数に対応しており、カンマで区切ることでいくつでも引数を渡すことができます」 – p.39

し、知らなかった…。まあ、var_dump()で複数の変数を一度に出力したい場面ってあんまり無いですけど。var_dump()使うときはデバッグ時なので、出力する変数は1度に1つ、というのが基本ですね。


<自動的に定義される変数>

代表的なものは$argc(CLIで実行時スクリプトに渡された引数の数)、$argv(CLIで実行時スクリプトに渡された引数の配列)、スーパーグローバル変数($_GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIE, $_REQUEST, $_FILES, $_SESSION, $_ENV)などでしょう。

このうち、$_GLOBALSと$_REQUESTの使用はバッドプラクティスです。原則として避けるべき。

<PHPによって定義されている定数(完全なリストはhttp://php.net/manual/ja/reserved.constants.php)>
PHP_VERSION:実行しているPHPのバージョン番号
PHP_OS:実行しているOSの種類
PHP_EOL:実行された環境での改行コード
STDIN:標準入力ストリーム
E_WARNING:Warningのエラー番号

<マジック定数(完全なリストはhttp://www.php.net/manual/ja/language.constants.predefined.php)>

「マジック定数は、その定数が記述された場所によって動的にその値が変化する定義済み定数」- p.49

__FILE__:ファイルのフルパスとファイル名
__DIR__:そのファイルの存在するディレクトリ名
__LINE__:そのファイル上の現在の行番号
__FUNCTION__:関数名 ※
__CLASS__:クラス名 ※
__METHOD__:メソッド名 ※
__NAMESPACE__:現在の名前空間の名前
※:宣言時の名前を大文字小文字を区別して返す

<error_reporting設定>
E_ALL ^ E_NOTICE ^ E_DEPRECATED:本番環境用。NOTICE/STRICT/DEPRECATEDを無視。
E_ALL | E_STRICT:開発環境用。すべてのエラーを報告。

display_errorsは、本番ではOff、開発ではOn
log_errorsは、常にOn

コメントを残す