Blogger Information
Blog 30
fans 1
comment 0
visits 24274
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
面向对象的进阶内容 20191010
阿乎乎的学习
Original
654 people have browsed it

第一个知识点   接口常量,接口常量和类常量类似,也是用const来定义,

第二个知识点  后期静态绑定(延迟静态绑定),绑定是在代码运行是发生的。静态继承的上下文环境中,调用子类重新的静态方法,使用关键词static代替self。

第三个知识点 命名空间的分级管理

第三个知识点  trait是为了解决子类只能继承一个父类单继承机制,在宿主类中引用trait类,使用use traitName就可以使用

作业一:写一个分级的命名空间, 并实现类的自动加载

实例

<?php
namespace __1010;
spl_autoload_register(function($className){
    $path=str_replace('\\',DIRECTORY_SEPARATOR,$className);
    $path=__DIR__.DIRECTORY_SEPARATOR.$path.'.php';
    include $path;
});
//类的别名使用use \__NAMESPACE__\className as Name 来定义,use默认是从根空间开始的,因此最前面的\可以省略。如果省略了Name,那么类的别名就是类名,as定义放置空间命名冲突
use config\inc\text1;
use config\inc\text2;
use config\demo1;
use config\demo2;
use inc\test1;
use inc\test2 as test2;
//测试结果,输出的都是类名下的text()方法,加载成功。
echo text1::text().'<br>';
echo text2::text().'<br>';
echo demo1::text().'<br>';
echo demo2::text().'<br>';
echo test1::text().'<br>';
echo test2::text();

运行实例 »

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

2222.png


作业二: 写一个trait类, 理解它的功能与使用场景

实例

//创建一个返回姓名和年龄的trait类
trait info{
    public $name;
    public $age;
    public function info(){
        return '我名字是'.$this->name.',年龄是'.$this->age;
    }
}
//创建一个返回地址和电话的trait类
trait address{
    public $address;
    public $phone;
    public function ainfo(){
        return '我家住在'.$this->address.',我的电话是'.$this->phone;
    }
}
//创建类来继承方法,最后返回信息
class getInfo{
    use info;
    use address;
    public function __construct($name,$age,$phone,$address)
    {
        $this->phone=$phone;
        $this->name=$name;
        $this->age=$age;
        $this->address=$address;
    }
    public function getInfo(){
        return $this->info().$this->ainfo();
    }
}
echo '<br>';
$info=new getInfo('小新',18,13598653541,'重庆市渝北区万寿山');
echo $info->getInfo();

运行实例 »

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



Trait类是为了解决子类只能继承一个父类而生的,这样子类就可以继承多个trait类的属性和方法,更加灵活多变。

Correction status:qualified

Teacher's comments:trait只是提供了另一种选择罢了, 目前在开发过程 , 并未被足够重视,也未大量使用
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