实例
<?php /** * trait是什么? * 1.trait是为单继承语言量身定制的代码复用机制(class B extends A)A后面不能再有C * 2.trait简单理解为一个方法的集合 * 3.trait可以看作是一个特殊的类,但不能被实例化,仅允许被类调用 */ require '../UTF/UTF-8.php'; class Person { protected $name; public function __construct($name='小红') { $this->name = $name; } public function market($shopping='购物') { return $this->name.'在商场'.$shopping; } } trait Middle { //trait中可以有属性 public $friend = '小明'; public function hobby($hobby='逛街') { //trait可以访问父类中的属性 return $this->name . '和' . $this->friend . '在一起' . $hobby; } //抽象静态方法 abstract public static function happy($name); //和Person类同名的方法 public function market($shopping='买衣服') { return $this->friend.'在商场'.$shopping; } } //有了父类,还有一个trait类 //再声明一个子类 class Relative extends Person { //导入trait类 use Middle; protected $friend1='小王'; // public function __construct($name = '小红',$friend1='小王') // { // parent::__construct($name); // $this->friend1=$friend1; // } //实现抽象静态方法 public static function happy($name) { return $name; } public function market($shopping='买鞋子') { return $this->friend1.'在商场'.$shopping; } } echo (new Relative())->market();
运行实例 »
点击 "运行实例" 按钮查看在线实例