Blogger Information
Blog 30
fans 0
comment 0
visits 22398
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
9.7mvc
归宿的博客
Original
676 people have browsed it

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将转换为视图,显示给用户


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post