PHP4では関数にオブジェクト引数を渡しても、それがなんであっても渡せてしまうというのがありました。
PHP4の場合
class A{
function hoge(){}
}
function callClass($obj){
// $obj はなんなのか? get_class で調べる?
}
PHP5の場合
class A{
function hoge(){}
}
function callClass(A $obj){
// A もしくは Aを継承するクラスのインスタンス以外が渡された場合はエラー
}
このメソッドにはこのクラスのインスタンスしか渡したくない、ということは往々にしてあるので、この機能は嬉しい機能ですね。
instanceof という関数も追加され、
if ($obj instanceof A) {
のようにして $obj が A クラス、またはAクラスを継承するクラスのインスタンスかどうか調べることが出来るようになりました。
スポンサードリンク
もどる