在Mage类中使用$_registry存储生成的对象,这样生成的对象在全局都可以访问。Mage::register 函数有两种格式:
- public static function register($key, $value, $graceful = false) 注册一个新的变量
- public static function registry($key) 通过$key获取已有变量
- public static function unregister($key) 注销一个变量
Magento源文件:
- public static function register($key, $value, $graceful = false)
- {
- if (isset(self::$_registry[$key])) {
- if ($graceful) {
- return;
- }
- self::throwException('Mage registry key "'.$key.'" already exists');
- }
- self::$_registry[$key] = $value;
- }
- /**
- * Retrieve a value from registry by a key
- *
- * @param string $key
- * @return mixed
- */
- public static function registry($key)
- {
- if (isset(self::$_registry[$key])) {
- return self::$_registry[$key];
- }
- return null;
- }
摘自:http://justcoding.iteye.com/blog/1572599