この記事の例では、Zend Framework での Zend_Registry コンポーネントの使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
1. オブジェクト レジストリ
入門ケース:
<?php require_once("Zend/Loader.php"); Zend_Loader::loadClass('Zend_Registry'); $member = array( "姓名"=>"张三", "性别"=>"女", "年龄"=>"13", "职业"=>"学生", "爱好"=>"玩游戏", "血型"=>"AB" ); $registry = new Zend_Registry($member); echo "姓名为:"; echo $registry["姓名"]; echo "<p>"; echo "性别为:"; echo $registry["性别"]; echo "<p>"; echo "年龄为:"; echo $registry["年龄"]; echo "<p>"; echo "职业为:"; echo $registry["职业"]; echo "<p>"; echo "爱好为:"; echo $registry["爱好"]; echo "<p>";
結果は次のとおりです:
姓名为:张三 性别为:女 年龄为:13 职业为:学生 爱好为:玩游戏
2.set() メソッドget() メソッド データを設定、データを取得
構文:
値を設定 Zend_Registry::set('index','value')
値を取得 Zend_Registry::get('index')
ケース:
<?php require_once("Zend/Loader.php"); Zend_Loader::loadClass('Zend_Registry'); $member = array( "姓名"=>"张三", "性别"=>"女", "年龄"=>"13", "职业"=>"学生", "爱好"=>"玩游戏", "血型"=>"AB" ); Zend_Registry::set("registry",$member); $registry = Zend_Registry::get("registry"); echo "姓名为:"; echo $registry["姓名"]; echo "<p>"; echo "性别为:"; echo $registry["性别"]; echo "<p>"; echo "年龄为:"; echo $registry["年龄"]; echo "<p>"; echo "职业为:"; echo $registry["职业"]; echo "<p>"; echo "爱好为:"; echo $registry["爱好"]; echo "<p>";
説明 : 効果は new の結果と同等です。
3. オブジェクト レジストリ setInstance、getInstance
例:
<?php require_once("Zend/Loader.php"); Zend_Loader::loadClass('Zend_Registry'); $registry = new Zend_Registry(); Zend_Registry::setInstance($registry); $registry->name = "Mike"; $registry->age = "30"; $registry = Zend_Registry::getInstance(); echo $registry->name; echo "<p>"; echo $registry->age; echo "<p>"; $registry->sex = "male"; echo $registry->sex;
結果:
Mike 30 male
説明: setInstance メソッドを通じて、オブジェクトの形式で値を設定できます。 getInstance を渡して値を取得します。
4.isRegistered() を使用して、インデックスに値があるかどうかを判断します。
ケース:
<?php require_once("Zend/Loader.php"); Zend_Loader::loadClass('Zend_Registry'); Zend_Registry::set("name","张三"); if(Zend_Registry::isRegistered("name")){ echo "对象注册表name已经定义"; }else{ echo "对象注册表name没有定义"; } echo "<p>"; if(Zend_Registry::isRegistered("age")){ echo "对象注册表age已经定义"; }else{ echo "对象注册表age没有定义"; }
結果:
对象注册表name已经定义 对象注册表age没有定义
説明:
定義されていれば検出可能です。
5. 静的レジストリを削除する
Zend_Registry::_unsetInstance() メソッドは静的レジストリを削除します
ケース:
<?php require_once("Zend/Loader.php"); Zend_Loader::loadClass('Zend_Registry'); Zend_Registry::set("name","张三"); echo "执行操作前:"; echo "<p>"; if(Zend_Registry::isRegistered("name")){ echo "对象注册表name已经定义"; }else{ echo "对象注册表name没有定义"; } echo "<p>"; if(Zend_Registry::isRegistered("age")){ echo "对象注册表age已经定义"; }else{ echo "对象注册表age没有定义"; } Zend_Registry::_unsetInstance("name"); echo "<p>"; echo "执行操作后:"; echo "<p>"; if(Zend_Registry::isRegistered("name")){ echo "对象注册表name已经定义"; }else{ echo "对象注册表name没有定义"; } echo "<p>"; if(Zend_Registry::isRegistered("age")){ echo "对象注册表age已经定义"; }else{ echo "对象注册表age没有定义"; }
結果:
执行操作前: 对象注册表name已经定义 对象注册表age没有定义 执行操作后: 对象注册表name没有定义 对象注册表age没有定义
説明: delete メソッドの実行後、登録前情報が消えてしまった。
概要:
これらは、Zend_Registry の一般的に使用されるいくつかのメソッドとケースです。通常の変数では実現できない機能の多くは、レジストリを介して実現できます。
この記事が、Zend Framework フレームワークに基づいた PHP プログラミングの皆様のお役に立てれば幸いです。
Zend Framework 入門チュートリアルの Zend_Registry コンポーネントの使用法に関する詳細な説明については、PHP 中国語 Web サイトに注目してください。