批改状态:合格
老师批语:所有作业必须在6月10日前完成
interface接口相当于设计/抽象类,可将顶层设计代码放入interface接口中,再通过工作类的继承将其实现,接口不能被实例化,只能被继承。
interface iface{// 接口常量:用关键字const声明const MY='接口常量值';// 接口方法public function ifun();}// 实现(工作类),用关键字implements继承接口class job implements iface{public $myname='工作类属性值';public function ifun(){return '工作类中实现的接口方法:'.__FUNCTION__;}}// 实例化工作类$job=new job;// 访问接口常量echo '访问接口常量:',iface::MY,'<hr>';// 访问工作类中的属性echo '访问工作类中的属性:',$job->myname,'<hr>';// 访问在工作类中实现的接口方法echo '访问在工作类中实现的接口方法:',$job->ifun(),'<hr>';

trait是一种很特殊的类,不能被实例化,也不能继承,只能嵌入其他类中,使用use关键字引入/嵌入其他类中,相当于是一个代码组件,哪里需要它就use它。
trait tClass{// 常规属性及方法public $tname = '常规属性';public function tfun(){return 'trait中的常规方法:'.__FUNCTION__;}// 静态属性及方法public static $stname = '静态属性';public static function stfun(){return 'trait中的静态方法:'.__FUNCTION__;}// 抽象// 抽象静态属性public static $cstname;// 抽象静态方法abstract public static function cstfun();}// trait相当于组件,可以直接引用或嵌入到其他的类中class Classname1{// 类中使用trait , 用use 关键use tClass;// 抽象静态方法实现public static function cstfun(){return '实现trait中的抽象静态方法:'.__FUNCTION__;}// 在类内无法直接给trait中的抽象静态属性赋值?}class Classname2{// 类中使用trait , 用use 关键use tClass;// 抽象静态方法实现public static function cstfun(){return '实现trait中的抽象静态方法:'.__FUNCTION__;}// 在类内无法直接给trait中的抽象静态属性赋值?}// 实例化$Class1=new Classname1;// 给抽象静态属性赋值Classname1::$cstname='在类外给trait抽象静态属性赋的值1';echo $Class1->tname,'<hr>';echo $Class1->tfun(),'<hr>';echo $Class1::$stname,'<hr>';echo $Class1::stfun(),'<hr>';echo $Class1::$cstname,'<hr>';echo $Class1::cstfun(),'<hr>';// 实例化$Class2=new Classname2;// 给抽象静态属性赋值Classname2::$cstname='在类外给trait抽象静态属性赋的值2';echo $Class2->tname,'<hr>';echo $Class2->tfun(),'<hr>';echo $Class2::$stname,'<hr>';echo $Class2::stfun(),'<hr>';echo $Class2::$cstname,'<hr>';echo $Class2::cstfun(),'<hr>';

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号