Blogger Information
Blog 32
fans 1
comment 0
visits 29000
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
trait
艾克的博客
Original
1023 people have browsed it
<?php
/**
 * trait实现了代码复用
 * 并且突破了单继承的限制
 * trait是类不是类,不能实例化
 *
 * trait优先级的问题
 * 1.当前类中的方法与trait类,父类中的方法重名了,怎么办?
 * trait类的优先级是高于同名父类方法
 *
 * 2.当多个trait类中有同名的方法,怎么办?
 *设置一条规则
 * use Demo,Demo2
 * {
       Demo1 ::hello insteadof Demo2;  当访问hello方法时 Demo1替代掉Demo2中hello方法
 *     Demo2 ::hello as Demo2hello;给Demo2中的方法起一个别名 这样hello方法就不会失效
 * }
 *
 */
trait Demo1
{
    public function hello1()
    {
        return __METHOD__;
    }
}

trait Demo2
{
    public function hello2()
    {
        return __METHOD__;
    }
}

class Demo
{
    use Demo1,Demo2;
    public function hello()
    {
        return __METHOD__;
    }
    public function test1()
    {
        return $this->hello1();
    }
    public function test2()
    {
        return $this->hello2();
    }
}

$obj = new Dome();
echo $obj->hello();//访问Demo中的hello方法
echo $obj->test1();//访问Demo1中的hello1方法
echo $obj->test2();//访问Demo2中的hello2方法


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