ホームページ  >  記事  >  バックエンド開発  >  PHP インターセプターのサンプル分析、PHP インターセプターのサンプル分析_PHP チュートリアル

PHP インターセプターのサンプル分析、PHP インターセプターのサンプル分析_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:15:25990ブラウズ

PHP インターセプターの例分析、PHP インターセプターの例分析

この記事の例では、PHP インターセプターの使用について説明します。参考のためにみんなで共有してください。詳細は以下の通りです

PHP には、以下に示すように、未定義のメソッドやプロパティがアクセスされたときに呼び出されるインターセプターがいくつか用意されています。

1、__get($property)

機能: 未定義のプロパティへのアクセスは
と呼ばれます

2、__set($property, $value)

関数: 未定義のプロパティの値を設定するときに呼び出されます

3.__isset($property)

関数: 未定義のプロパティに対して isset() が呼び出されたときに呼び出されます

4.__unset($property)

関数: 未定義のプロパティに対して unset() が呼び出されたときに呼び出されます

5.__call($method, $arg_array)

関数: 未定義のメソッドが呼び出されたときに呼び出されます

以下は、小さなプログラムによるこれらのインターセプターの使用法を示しています:


コードをコピーします コードは次のとおりです:
クラスインターセプト_デモ{
プライベート $xingming = "";
プライベート $age = 10;

// 未定義のプロパティにアクセスした場合、get{$property} に対応するメソッドが呼び出されます
関数 __get($property){
$method = "get{$property}";
If (method_exists($this, $method)){
return $this->$method();
}
}

// 未定義のプロパティに値を設定すると、set{$property} に対応するメソッドが呼び出されます
関数 __set($property, $value){
$method = "set{$property}";
If (method_exists($this, $method)){
return $this->$method($value);
                                                                                      }

// ユーザーが未定義のプロパティに対して isset メソッドを呼び出した場合、
関数 __isset($property){
$method = "isset{$property}";
If (method_exists($this, $method)){
return $this->$method();
}
}

// ユーザーが未定義のプロパティに対して unset メソッドを呼び出した場合、
// // 対応する unset{$property} メソッドが呼び出されたものとみなされます
関数 __unset($property){
$method = "unset{$property}";
If (method_exists($this, $method)){
return $this->$method();
}
}

関数 __call($method, $arg_array){
If (substr($method,0,3)=="get"){
$property = substr($method,3);
$property = strto lower(substr($property,0,1)).substr($property,1);
return $this->$property;
}
}

関数 testIsset(){
return isset($this->Name);
}

関数 getName(){
戻り $this->xingming;
}

関数 setName($value){
$this->xingming = $value;
}

関数 issetName(){
return !is_null($this->xingming);
}

関数 unsetName(){
$this->xingming = NULL;
}
}

$intercept = 新しい intercept_demo();

echo "属性名を Li に設定します";
$intercept->名前 = "リー";
echo "$intercept->Name={$intercept->Name}";
echo "isset(Name)={$intercept->testIsset()}";
エコー「」;
echo "属性名の値をクリア";
unset($intercept->名前);
echo "$intercept->Name={$intercept->Name}";
エコー「」;
echo "未定義の getAge 関数を呼び出す";
echo "age={$intercept->getAge()}";

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

PHPインターセプターの実装

いくつかの $_SERVER 変数

$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $url;
これら 2 つがあなたが望むものです。

phpでのインターセプタとパブリック属性の使用の違いは何ですか

インターセプターには変数を一括して処理したり保存したりできる機能がありますが、パブリック属性を多用するとオブジェクト指向の思考が失われます

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/904925.html技術記事 PHP インターセプターの例の分析、PHP インターセプターの例の分析 この記事では、PHP インターセプターの使用法を例とともに説明します。参考のためにみんなで共有してください。詳細は次のとおりです: PHP は...
を使用していくつかのインターセプターを提供します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。