网站制作学习网PHP→正文:php Trait像类一样继承函数
字体:

php Trait像类一样继承函数

PHP 2024/11/28 0:09:41  点击:不统计

学习www.网for站asp制.cn作

 php中Trait用来定义一组函数,让任何的类可以直接方便的向继承父类一样继承了对应的函数。
 
下面看Trait像类一样继承函数 的案例:
   
<?php
# 1. 定义 Trait 对象
trait A
{
function add($x, $y)
{
return $x + $y;
}
}

trait B
{
function mul($x, $y)
{
return $x * $y;
}
}

#2. 类C中继承使用 Trait

class C
{
use A, B;

public function run($x, $y)
{
echo $this->add($x, $y);
echo ",";
echo $this->mul($x, $y);
}
}


$c = new C();
$c->run(2, 3);
# 输出 5,6

# 3 如果出现重复函数定义,那需要在指定调用 那个的trait的方法

trait E
{
function add($x, $y)
{
return $x + $y - 1; # 这里单独减一
}
}

class D
{
use A, E {
A::add insteadof E;
E::add as b_add;
}

public function run($x, $y)
{
echo $this->add($x, $y);
echo ",";
echo $this->b_add($x, $y);
}
}

$d = new D();
$d->run(2, 3);
# 输出 5,4
   
最后说明:
(1)Traits 不能独立实例化:它们只是代码块,不能单独使用,必须通过类来使用。
(2)方法优先级:当一个类使用 Trait 和继承父类的方法时,Trait 中的方法优先于父类方法。
(3)属性和方法冲突:Traits 可以包含属性,如果属性与类或其他 Traits 的属性冲突,需要明确调整。
 
 

·上一篇:Class "Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory" no >>    ·下一篇:php Composer设置中国源 >>
推荐文章
最新文章