加入收藏 | 设为首页 | 会员中心 | 我要投稿 无锡站长网 (https://www.0510zz.cn/)- 运维、开发、CDN、操作系统、语音技术!
当前位置: 首页 > 教程 > 正文

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()
   
      {

(编辑:无锡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读