批改状态:合格
老师批语:
1.类有关键字:class
2.类的名字:通常首字母大写
3.类的扩展关键字:extends
4.类的主体有大括号包括{}
1.类的属性和方法的修饰符:
::访问范围符,通常跟self|parent|static使用1.final:在类名前声明final关键字,当前类则无法被继承,如果类中方法声明了关键字final关键字,当前方法则无法被子类修改
2.abstract:在类名前声明关键字abstract,当前类则为抽象类,抽象类必有抽象方法(抽象方法没有函数体);
1.Trait方法集的组成:方法集属于伪类的一种,不能实列化
Trait+方法集名字建议由小写t开头首字母大写例如tUseruse关键字来使用,可以多个方法集组合使用,用逗号分开:其中方法集和父类以及字类的优先级:子类>方法集>父类;insteadof(指定使用哪个方法集中的方法替代重名的方法)和as(重名的方法可以起别名,使用)来进行解决类如:
use tT1,tT2{tT1::show insteadof tT2;tT2::show as sh;}
1代码
<?phpinclude "autoload.php";echo "测试OK";class UseName{public $name="ldy";private $age=35;protected $sex="男";private static $id=1;public function __construct(){}public function show():string{return $this->name.__FUNCTION__.__METHOD__.__CLASS__;}// self的作用public function string():string{return self::$id.$this->name;}//static延迟绑定public function tostring():string{return static::$id;}}Trait tT1{function show():string{return __METHOD__;}function put():string{return __METHOD__;}}Trait tT2{function show():string{return __METHOD__;}}class Demo extends UseName{use tT1,tT2{tT1::show insteadOf tT2;tT2::show as sh;}public static $id=2;}$usr=new UseName();$user=new Demo();echo $usr->show();echo $usr->string();echo $usr->tostring();echo "<hr>";echo $user->string();echo $user->tostring();echo $user->show();echo "<hr>";echo "<h3>方法集中方法名冲突</h3><br>";echo $user->show()."<br>";echo $user->sh()."<br>";echo "<hr>";echo "__FILE__的返回内容:".__FILE__."<br>";//返回当前文件的具体路径位置(包含文件名字)echo "__DIR__的返回内容:".__DIR__."<br>";//返回当文件的的文件路径(不包含文件名)echo "__NAMESPACE__的返回内容:".__NAMESPACE__."<br>";echo "dirname()的返回内容:".dirname(__FILE__);//函数返回路径中的目录名称部分。作用等同于__DIR__;echo "<hr>";$user_one=new Login();echo $user_one->input();
2.运行结果
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号