用分级命名空间实现类的自动加载,写一个trait类, 理解它的功能与使用场景--1010
程序员文章站
2022-03-20 23:18:04
...
用分级命名空间实现类的自动加载
重点在于命名空间和类所在目录保持一致
1.先创建一个text1.php用来保存要自动加载的内容
实例
<?php namespace _1010\a\b\c; class k { public static function demo() { echo "类自动加载成功!"; } } ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
再创建一个demo1.php用来自动加载
实例
<?php namespace _1010; include "a\b\c/text1.php"; use _1010\a\b\c\k; echo k::demo(); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
效果图:
2.写一个trait
实例
<?php namespace _10101; trait kk { public static function l($q,$w) { return ($q-$w); } } echo $a=kk::l(9999,111); echo '<br>'; trait kkk { public static function m($e,$r) { return ($e+$r); } } echo $b=kkk::m(555555,1111111); echo '<br>'; class k { use kk; use kkk; public static function t($b,$a) { return "{$b}+{$a}=".($b+$a); } } echo k::t($b,$a); ?>
点击 "运行实例" 按钮查看在线实例
trait 像类但又不是类,有类的语法但是又不能实例化产生对象,这就好比单身狗不是狗,和众多生物一样要吃喝拉撒,有生产力,但就是没对象//应用场景:一个类需要从多个类中获取成员时使用,就好比女孩子可以有多个备胎,她可以从每个备胎那里都获得一点东西