Zend_Config很好用,我比较喜欢它的数组形态,其实ArrayObject也可以做同样的事情
 
 
$config = array(     'db' => array (         'adapter' => 'mysql',         'config' => array (             'host' => 'localhost',             'port' => '3306',             'dbname' => 'mydbname',             'username' => 'dbuser',             'password' => 'dbpassword',             'charset' => 'utf8',             'prefix' => '',         ),     ), ); $config = new Zend_Config($config); echo $config->db->adapter; foreach ($config->db->config as $k => $v) {     echo "$k | $v \n"; } echo count($config); //... 甚至其他更多的方法 
下面的扩展,通过几个魔术方法,不仅可以实现Zend_Config可以做到的事情,还可以继承Array_Object所有的可用方法
  
                    
                
 
  /**  * 将数组转换为对像形态使用  *  * @package    core  * @author     Akon(番茄红了)   * @copyright Copyright (c) 2008 (http://www.tblog.com.cn)  * @license    http://www.gnu.org/licenses/gpl.html     GPL 2  */ class Extend_ArrayObject extends ArrayObject {       /**      * 构造方法      *      * @param array  $array      */     public function __construct(array $array = array())     {         foreach ($array as &$value)             is_array($value) && $value = new self($value);         parent::__construct($array);     }       /**      * 使用魔术方法通过指定 name 获取值      *      * @param string  $index      * @return mixed      */     public function __get($index)     {         return $this->offsetGet($index);     }       /**      * 使用魔术方法修改指定 name 的值      *      * @param string  $index      * @param mixed   $value      */     public function __set($index, $value)     {         $this->offsetSet($index, $value);     }       /**      * 通过魔术方法判断数据是否已被设置      *      * @param string  $index      * @return boolean      */     public function __isset($index)     {         return $this->offsetExists($index);     }       /**      * 通过魔术方法删除数据      *      * @param string  $index      */     public function __unset($index)     {         $this->offsetUnset($index);     }       /**      * 将数据信息转换为数组形式      *      * @return array      */     public function toArray()     {         $array = $this->getArrayCopy();         foreach ($array as &$value)             ($value instanceof self) && $value = $value->toArray();         return $array;     }       /**      * 将数据组转换为字符串形式      *      * @return array      */     public function __toString()     {         return var_export($this->toArray(), true);     }   } 
 |