博主信息
博文 30
粉丝 0
评论 0
访问量 28168
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
9.7mvc
归宿的博客
原创
853人浏览过

1.单例模式;

class Conf1
{

}

$conf1 = new Conf1();
$conf2 = new Conf1();


//创建一个实用的配置类:单例模式
class Config
{
    /*
     *为什么要用静态的: 因为静态属性属于类的,被所有类实例所共享;
     * 为什么要给初始值为null? 便于检测
     */
    private static $instance = null;  //其实默认值就是null

    //配置参数容器
    public $setting = [];

    //禁止从类的外部实例化对象
    private function __construct()
    {
    }
    //外部仅允许通过一个公共静态方法来创建实例
    public static function getInstance()
    {
        //检测当前的类属性$instance是否已经保存了当前类的实例?
        if(self::$instance ==null){
            self::$instance = new self;
        }
        return  self::$instance;
    }

    //配置项的设置操作
    public function set()
    {
        //获取参数的数量
        $num = func_num_args();
        if($num > 0){
            switch($num){
                case 1: //如果只有一个参数,说明这是一个数组
                    $value = func_get_arg(0);
                    $this->setting = array_merge($this->setting,$value);
                    break;
                case 2: //如果只有一个参数,说明这是一个数组
                    $name = func_get_arg(0);
                    $value = func_get_arg(1);
                    $this->setting[$name] = $value;
                    break;
                default:
                    echo '参数不正确';
            }
        }else{
            echo '没有参数';
        }
    }


    //获取参数:当无参数的时候,默认获取全部参数
    public function get($name='')
    {
        if(empty($name)){
            //获取所有参数
            return $this->setting;
        }
        //获取某一个参数
        return $this->setting[$name];
    }
}
$obj1 = Config::getInstance();
$obj2 = Config::getInstance();
var_dump($obj1,$obj2);
var_dump($obj1 === $obj2);
echo '<hr>';

//设置
$obj1->set('host','127.0.0.1');
echo $obj1->get('host');
echo '<hr>';
$config = ['host'=>'127.0.0.1','user'=>'root','pass'=>'1234556'];
$obj1->set($config);
var_dump($obj1->get());

2.mvc的实现原理;

//先声明三个类,一会然他们上树
class Demo1{};
class Demo2{};
class Demo3{};

//声明一个对象注册树
class Register
{
    public static $objs = [];

    //将对象挂到树上
    public static function set($index,$obj)
    {
        self::$objs[$index] = $obj;
    }

    //取出对象来用一下
    public static function get($index)
    {
        return self::$objs[$index];
    }

    //销魂对象
    public static function del($index)
    {
        unset(self::$objs[$index]);
    }
}


//将三个类的对象上树
Register::set('demo1',new Demo1);
Register::set('demo2',new Demo2);
Register::set('demo3',new Demo3);
//检测
//var_dump(Register::$objs);
//查看
//var_dump(Register::$objs['demo2']);
//Register::del('demo3');  //销毁
var_dump(Register::get('demo3'));

3.mvc的设计思想;

model模块;view视图;controller控制器.
model将用户请求的操作,反馈给控制器,控制器操作完用户的需求返回给model,model将转换为视图,显示给用户


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学