PHP数组式访问-ArrayAccess示例解析
发布时间:2022-07-25 10:03:48 所属栏目:教程 来源:互联网
导读:本文章主要讲述了PHP中的数组式访问,具有一定参考价值,感兴趣的朋友可以了解一下,希望能帮助到你。 以前对ArrayAccess不是很熟悉,现在整理下下有关ArrayAccess相关的知识,ArrayAccess接口就是提供像访问数组一样访问对象的能力的接口。 接口内容如下:
本文章主要讲述了PHP中的数组式访问,具有一定参考价值,感兴趣的朋友可以了解一下,希望能帮助到你。 以前对ArrayAccess不是很熟悉,现在整理下下有关ArrayAccess相关的知识,ArrayAccess接口就是提供像访问数组一样访问对象的能力的接口。 接口内容如下: ArrayAccess { //检查一个偏移位置是否存在 abstract public boolean offsetExists ( mixed $offset ); //获取一个偏移位置的值 abstract public mixed offsetGet ( mixed $offset ); //设置一个偏移位置的值 abstract public void offsetSet ( mixed $offset , mixed $value ); //复位一个偏移位置的值 abstract public void offsetUnset ( mixed $offset ); } 项目中使用,获取网站配置: <?php namespace lib; use mpfcoreDi; class config implements ArrayAccess{ //定义存储数据的数组 protected $configs; public function __construct($configs){ $this->configs = $configs; $configs = libmodelHome::getWebConfig(); foreach( $configs as $config ){ if( !isset($this->configs[$config['sc_key']]) ){ $this->configs[$config['sc_key']] = $config['sc_content']; } } } public function get($key){ if( isset($this->configs[$key]) ){ return $this->configs[$key]; }elseif( $key == 'caipiao'){ $this->configs['caipiao'] = libmodelHome::getLcs(); return $this->configs[$key]; }elseif( $key == 'user_money' ){ if( isset($_SESSION['uid']) ){ if( $_SESSION['utype'] == 5 ){ $sql = 'select money from inner_user where uid=?'; }else{ $sql = 'select money from user where uid=?'; } $this->configs['user_money'] = mpfcoreDi::$Di->db->prepare_query($sql,[getUid()])->fetch(PDO::FETCH_COLUMN); return $this->configs['user_money']; } } } public function offsetExists($index){ return isset($this->configs[$index]); } public function offsetGet($index){ return $this->configs[$index]; } public function offsetSet($index,$val){ $this->configs[$index] = $val; } public function offsetUnset($index){ unset($this->configs[$index]); } } 这样可以使用config对象来直接访问配置信息内容。 配置程序: 我们可以通过ArrayAccess利用配置文件来控制程序。 1. 在项目更目录下创建一个config目录 2. 在config目录下创建相应的配置文件,比如app.php 和 database.php。文件程序如下 app.php <?phpreturn [ 'name' => 'app name', 'version' => 'v1.0.0' ]; database.php <?php return [ 'mysql' => [ 'host' => 'localhost', 'user' => 'root', 'password' => '12345678' ] ]; 3. Config.php实现ArrayAccess <?php namespace Config; class Config implements ArrayAccess { private $config = []; private static $instance; private $path; private function __construct() { $this->path = __DIR__."/config/"; } public static function instance() { (编辑:无锡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |