menu
書いてる野郎
orebike@gmail.com
include とか include_once とか require とか require_once とかの外の PHP ファイルを引っ張って解釈する系の処理。
この処理は仕様がかなり豪快になっており記述次第でいろいろな効果がある。 普通のコーディングではあまり意識して使うことは無いが自分でちょっとしたフレームワークを作るとなると使うことになるだろう。
基本的にファイル外のPHPファイルを読み込むために使う。 使いたい関数の定義が hoge.php にあるから piyo.php の頭で require_once するという具合だ。
このように書く
include("hogehoge.php");
動作は豪快で、include したファイルの中に記述されているコードが include を実行した位置にそのまま展開されてそのまま実行されるような動作をする。
基本的には
ほとんどの場合において存在する定義済みライブラリを読み込むという用途で使われるので require_once だけで問題ないだろう。
include 関数には戻り値があって、それは include されるファイルのグローバル部分で記述された return の値になる。
なので ファイル hoge.php にこのように記述
<?php return "hoge";
ファイル piyo.php にこのように記述すると値が取れる
echo include("hoge.php"); #=> "hoge"
実行した位置にそのまま展開されてそのまま実行されるような動作
なので include したファイル中の PHP コードと include されたファイル中の PHP コードは地続きになっていて、相互にアクセスが可能になる。
つまり名前さえ一致させておけば、include されるコードにパラメータを渡したりだとか、そのコード中で行った結果を include した側で取り出すことができる。 かなりキモいのだがそういうことができる。
これを使うと突如変数が出現したり、中身が切り替わったりするので、本当に必要な時、構造の安全性よりも記述の簡素化を狙うこと以外では使わないほうがよい。 逆にトラブルがあるならこれを疑ってもよい。