PHP trait的使用

一、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();
posted @ 2019-06-13 17:40  xiaobaiskill  阅读(126)  评论(0)    收藏  举报