日期:2012-07-03 浏览次数:20440 次
Zend_Config很好用,我比较喜欢它的数组形态,其实ArrayObject也可以做同样的事情 <?php $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所有的可用方法 <?php /** * 将数组转换为对像形态使用 * * @package core * @author Akon(番茄红了) <aultoale@gmail.com> * @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) {
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|