Reload_PHP チュートリアル

WBOY
リリース: 2016-07-20 10:59:56
オリジナル
831 人が閲覧しました

PHP4 には、Java や COM と同様に、外部オブジェクト モデルへのマッピングを確立するためのオーバーロード構文がすでにあります。PHP5 は強力なオブジェクト指向オーバーロードを提供し、プログラマがプロパティにアクセスしてメソッドを呼び出すためのカスタム動作を作成できるようにします。
オーバーロードは、__get、__set、__call といういくつかの特別なメソッドを通じて実行できます。Zend エンジンがメンバーにアクセスしようとして見つからない場合、PHP はこれらのメソッドを呼び出します。
例 6.14 では、属性変数配列へのすべてのアクセスを __get と __set に置き換えます。たとえば、スクリプトで属性値の設定を無効にしたり、特定の接頭辞で開始したり、次の値を含めたりできます。あるタイプ

__call メソッドでは、未定義のメソッドを呼び出す方法について説明します。未定義のメソッドを呼び出すと、メソッド名とメソッドによって受け取られたパラメーターが __call メソッドに渡され、PHP は __call の値を未定義のメソッドに返します。
リスト 6.14 ユーザーレベルのオーバーロード


クラスオーバーローダー
{
private $properties = array();

関数 __get($property_name)
{
if(isset($this->properties[$property_name]))
{
return($this->properties[$property_name]);
}
それ以外
{
return(NULL);
}
}

関数 __set($プロパティ名, $値)
{
$this->properties[$property_name] = $value;
}

関数 __call($関数名, $args)
{
print("$function_name() を呼び出しています
ん");
print("引数: ");
print_r($args);

return(TRUE);
}
}
$o = 新しいオーバーローダー();

//__set() を呼び出すと、存在しない属性変数に値が代入され、__set() が起動されます
$o->dynaProp = "動的コンテンツ";

// __get() を呼び出すと __get() が有効になります
print($o->dynaProp . "
ん");

//__call() を呼び出し、__call() をアクティブ化します
$o->dynaMethod("レオン", "ジーヴ");
?>



http://www.bkjia.com/PHPjc/445555.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445555.html技術記事 Java や COM と同じように、PHP4 には外部オブジェクト モデルへのマッピングを作成するためのオーバーロード構文がすでにあり、PHP5 は強力なオブジェクト指向オーバーロードを提供し、プログラマーがカスタム動作を作成できるようにします。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!