一、trait 是什么
官方解释
说白了就是 类的组合(拼凑)
为了能够复用代码而产生的
二、话不多说 代码伺候
<?php
trait runing
{
private $name;
public function run()
{
echo $this->name . ' runing....';
}
}
trait instance
{
static $instance;
public static function getInstance(...$args)
{
if(!isset(self::$instance)){
self::$instance = new self(...$args);
}
return self::$instance;
}
}
class person
{
use instance,runing;
private function __construct(string $name)
{
$this->name = $name;
}
}
class animal
{
use instance;
private $animal;
private function __construct(string $animal)
{
$this->animal = $animal;
}
public function eat()
{
echo $this->animal . 'eating...';
}
}
$jmz = person::getInstance('jmz');
$jmz->run();
$dog = animal::getInstance('dog');
$dog->eat();