搜索
博主信息
博文 34
粉丝 1
评论 1
访问量 47651
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
对命名空间的理解、类的继承与实现——2019年7月31号22时03分
嘿哈的博客
原创
1441人浏览过

对命名空间的理解:

声明命名空间为 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();

运行实例 »

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


批改状态:合格

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

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

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