创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

traits和interfaces的区别是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
interface我们在大型项目开发中使用,用于约束团队协作的,interface接口规定没有定义的函数,其他开发人员继承,必须在按照里面的名称进行定义,不能少一个函数也不能多一个函数,这样就能约束和管理其他开发者。
PHP是单继承的语言,在PHP 5.4 Traits出现之前,PHP的类无法同时从两个基类继承属性或方法。php的Traits和Go语言的组合功能有点类似,
通过在类中使用use关键字声明要组合的Trait名称,而具体某个Trait的声明使用trait关键词,Trait不能直接实例化。
traits与interfaces的区别是:
1、trait看上去更像是为了代码的复用而写的一个小插件,它类似于include,可以用use放在类中间,让trait里面定义的方法作为class的一部分,本身不能直接实例化。
2、interface里面的方法都是虚拟的,需要在继承的时候对这些方法进行重定义。也就是说,方法是说明性质的,并没有实际操作,而你在继承的时候,需要实现这些方法,不然就会出错,而且不能缺失。interface经常用于架构的时候,对一个实例所拥有的属性和方法进行抽象定义。简单来讲类似一个协议,是老板下达的任务。你要继承的话,必须满足这个协议,也就是完成老板下达的任务。
var."";
    }
 
    function a()
    {
        echo "a"."";
    }
}
 
interface MyInterface
{
    function __construct();
    function b();
}
 
abstract class MyAbstract
{
    protected $var2 = 'MyAbstract_var';
    use MyTrait;
 
    function b()
    {
        echo "b"."";
    }
}
 
class MyClass extends MyAbstract implements MyInterface
{
    protected $var3 = 'MyClass_var';
    function c()
    {
        echo "c"."";
    }
}
 
$class = new MyClass();
$class->a();
$class->b();
$class->c();以上代码中,MyAbstract中的function b()也可以放在MyClass中,或者由MyAbstract实现接口MyInterface
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联-成都网站建设公司行业资讯频道,感谢您对创新互联的支持。
当前名称:traits和interfaces的区别是什么-创新互联
浏览地址:http://www.scyingshan.cn/article/dcodog.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 