首页 » 网站建设 » php单继续技巧_虽然PHP是单持续措辞但学会运用trait可以轻松实现多持续

php单继续技巧_虽然PHP是单持续措辞但学会运用trait可以轻松实现多持续

访客 2024-11-05 0

扫一扫用手机浏览

文章目录 [+]

Trait是PHP5.4.0起引入,它既像类又像接口。
trait是类的部分实现,可以混入一个或多个现有的PHP类中。

Trait有两个浸染:表明类可以做什么(像是接口);供应模块化实现(像是类)。

php单继续技巧_虽然PHP是单持续措辞但学会运用trait可以轻松实现多持续 php单继续技巧_虽然PHP是单持续措辞但学会运用trait可以轻松实现多持续 网站建设

为什么利用trait

PHP措辞利用的是单继续模型,大多数时候,这种继续模型能良好运作。
可是,如果想让两个无关的PHP类具有类似的行为,该当怎么做呢?

php单继续技巧_虽然PHP是单持续措辞但学会运用trait可以轻松实现多持续 php单继续技巧_虽然PHP是单持续措辞但学会运用trait可以轻松实现多持续 网站建设
(图片来自网络侵删)

Trait便是为理解决这种问题而出身的。
Trait能把模块化的实现办法注入多个无关的类中,而且trait还能促进代码重用。

如何创建trait

PHP中trait的定义办法如下:

<?phptrait MyTrait{ //这里是trait的实现}

建议:建议与定义类和接口一样,一个文件只定义一个trait,这是良好实践。

trait的5种利用方法

1、大略利用

<?phptrait first_trait{ function first_method() {/code here/} function second_method() {/code here/}}class first_class{//声明利用first_trait,用use关键字 use first_trait;}$obj = new first_class();$obj->first_method();$obj->second_method();

2、利用多个trait

<?phptrait first_trait{ function first_method() {/code here/}}trait second_trait{ function second_method() {/code here/}}class first_class{//多个trait之间用逗号分隔 use first_trait,second_trait;}$obj = new first_class();$obj->first_method();$obj->second_method();

3、trait之间的嵌套

<?phptrait first_trait{ function first_method() {/code here/}}trait second_trait{ use first_trait; function second_method() {/code here/}}class first_class{ use second_trait;}$obj = new first_class();$obj->first_method();$obj->second_method();

4、trait的抽象方法

在trait中声明须要实现的抽象方法,这样能使利用它的Class必须实现它

<?phptrait first_trait{ function first_method() {/code here/} abstract public function second_method();}class first_class{ use first_trait; function second_method() {/code here/}}

5、trait之间的冲突

多个Trait之间的冲突,可以利用insteadof操作符来明确指定利用冲突方法中的哪一个;还可以用as操作符将个中一个冲突的方法以另一个名称引入

<?phptrait first_trait{ function first_function() { echo "From Frist Trait";}}trait second_trait{ function first_function() { echo "From Second Trait";}}class first_class{ use first_trait,second_trait{ first_trait::first_function insteadof second_trait; second_trait::first_function as second_function;}}$obj = new first_class();$obj->first_function(); //输出:From Frist Trait$obj->second_function(); //输出:From Second Trait

好了,trait的用法你已经完备节制了,是不是完美的实现了多继续的功能呢,赶紧用起来吧。

标签:

相关文章

免费设计图在现代设计领域的魅力与价值

在现代设计领域中,免费设计图作为一种新兴的设计资源,正逐渐展现出其独特的魅力和价值。随着互联网的普及和设计软件的广泛应用,免费设计...

网站建设 2024-12-05 阅读0 评论0

phppost过长技巧_Excel表格若何截长图

封面方法步骤方法一(常用)1、打开须要截长图的Excel表格,按【Ctrl+A】全选表格(如只需截取部分内容,则直接选中须要截图区...

网站建设 2024-12-05 阅读0 评论0

公共区设计,打造和谐共生的城市空间

随着城市化进程的加快,公共区设计在城市规划中的重要性日益凸显。公共区作为城市居民生活、休闲、社交的重要场所,其设计水平直接关系到城...

网站建设 2024-12-05 阅读0 评论0