Blogger Information
Blog 34
fans 1
comment 1
visits 40862
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
对命名空间的理解、类的继承与实现——2019年7月31号22时03分
嘿哈的博客
Original
1265 people have browsed it

对命名空间的理解:

声明命名空间为 namespace ;

::class //获取当前类的完整类名称(命名空间名称+类名称);

访问 new \命名空间名称\类名称 ;

在one空间执行two空间的test类里的方法: (new \two\test()) -> show ();

命名空间就像城市与街道划分,命名空间是城市,类是街道 


类的定义:生成对象的模板;

类的实例化: $obj = new Demo1();

类的成员: 类属性(变量概念)和类方法(函数概念)

get_class_vars() 获取类中所有属性组成的数组;

类中的$this代表当前类的实例,是伪对象;

查看类中的方法 get_class_methods();


构造方法 __construct() 魔术方法 系统自动触发;

析构方法 __destruct() 也是魔术方法 对象被删除/清零时触发;

unset() 删除对象;


类的继承

用extends拓展 round(数据,保留小数点几位)四舍五入

实例

<?php

    namespace one;

    class A{
        public $who;
        public $name;
        //构造方法
        public  function __construct($who='我是',$name='洪吉潮')
        {
            $this->who = $who;
            $this->name = $name;
        }
        public function demo()
        {
            return '结果:' . $this->who . $this->name;
        }
    }

    $obj = new A();

    echo $obj -> demo();

    namespace two;
    class A
    {
        public $who;
        public $name;
        //构造方法
        public function __construct($who='你是',$name='李文茜')
        {
            $this->who=$who;
            $this->name=$name;
        }
        public function demo(){
            return '结果:'.$this->who . $this->name;
        }
    }
    echo '<hr>';
    $obj = new A();
    echo $obj->demo();

运行实例 »

点击 "运行实例" 按钮查看在线实例

连接数据库演示实例

<?php

    namespace one;

    class Db
    {
        public $pdo = 'null';
        //构造方法 创建pdo连接数据库
        public function __construct($dsn,$username,$password)
        {
            $this->pdo = new \PDO($dsn,$username,$password);
        }
        //析构方法
        public  function __destruct()
        {
            echo '<br>'.'连接断开';
        }
    }

    $db = new Db('mysql:host=127.0.0.1;dbname=php','root','root');

    $stmt = $db->pdo->prepare('SELECT * FROM `movies`');

    $stmt ->execute();

    foreach ($stmt->fetchAll(\PDO::FETCH_ASSOC )as $data){
        print_r($data);
    }

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
    //命名空间
    namespace one;
    //demo类
    class demo
    {
        public $name;
        public $age;

        //构造函数 实例化时会被自动调用执行
        public function __construct($name= '洪吉潮',$age)
        {
            $this->name = $name;
            $this->age = $age;
            echo '欢迎来到我的个人简介'.'<br>'.'姓名:'.$this->name.'<br>';
        }
        public function  getInfo()
        {
            return '年龄:'.$this->age.'<br>';
        }
    }
    //实例化
    $result = new demo('高老师','20');
    echo $result->getInfo();
    echo '<hr>';
    //子类demo1 继承 父类 demo
    class demo1 extends demo
    {
        public $address;
        //子类的构造函数
        public function __construct($address, $name = '洪吉潮' , $age)
        {
            $this->address = $address;
            //继承父类的构造函数
            parent::__construct($name, $age);
        }
        //方法重写
        public function getInfo()
        {
            return parent::getInfo().'哪里人:'.$this->address; // TODO: Change the autogenerated stub
    }
    }

    $result1 = new demo1('广东人','洪吉潮','22');
    echo $result1->getInfo();
    echo '<hr>';
    //子类demo2 继承父类demo1
    class demo2 extends demo1
    {
        public $teacher;
        //子类demo2构造函数
        public function __construct($teacher,$address, $name = '洪吉潮', $age)
        {
            $this->teacher = $teacher;
            //继承父类demo1的构造函数
            parent::__construct($address, $name, $age);
        }
        //方法重写
        public function getInfo()
        {
            $getinfo =  parent::getInfo();
            return $getinfo.'<br>'. '师从何人:'.$this->teacher;
        }
    }

    $result2 =  new demo2('没有老师','浙江人','李文茜','18');
    echo $result2 -> getInfo();

运行实例 »

点击 "运行实例" 按钮查看在线实例


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