[PHP] requireやinclude周りを復習
2010年7月17日
PHPのファイルインクルード周りが気になったので復習したという話です。
ブログ更新コストを抑えるために超雑更新モードで!
ブログ更新コストを抑えるために超雑更新モードで!
requireとincludeの違い
読み込み失敗時に処理が止まる = require
読み込み失敗時に処理を継続 = include
読み込み失敗時に処理を継続 = include
もう少し詳しく説明すると
読み込み失敗時に Fatal Error (E_ERROR) を発生 = require
読み込み失敗時に Warning (E_WARNING) を発生 = include
require_onceの同一ファイル判定
説明はいらんと思うので、以下が確認した点
- 途中のファイルパスの記述方法が異なっても、同じファイルを指していたら、同じファイルと判定(当たり前だけど)
- ファイル名の違うシンボリックリンクも、同じファイルと判定
後者は知らなかった。Linuxに詳しい人なら当然のことなのかもだけど。
include path
一点だけ↓
「パス (絶対パスあるいは相対パスのいずれでも)
を指定した場合は include_path は無視されます。」
何となく知ってたけど、ちゃんと意識したことは無かったので、
近い将来にハマってた気がする。
__autoload
クラス未定義エラーの直前をフックできる関数が __autoload です。
賢明なる諸君には詳しい説明も要らないと思うので、所感だけ↓
賢明なる諸君には詳しい説明も要らないと思うので、所感だけ↓
- 一応 function でもやってみたけど無理
- 個人的感想としては、使えるし黒魔法にもなりにくいので、割とオススメ
- 詳しく知りたい人は「PHP __autoload」とかでググるといいんだぜ
以上
「置くだけで使えるよ!」というPHPの長所を活かすためには、
とても大事な点なので復習しました。
とても大事な点なので復習しました。