Welcome 微信登录

首页 / 网页编程 / PHP / PHP里的单例类写法实例

PHP里的单实例类在进行数据交换,节省内存上还是很有意义的。写个简单例子。
类1,单实例类本身:
class UTIL {private static $instance;public function get() {if (!self::$instance) {self::$instance = new UTIL();}return self::$instance;}public $number = 10;public function change($num) {$this->number += $num;}public function getNum() {return $this->number;}}

类2,使用前述单实例类的应用类:
class SINGLEA {private $numInst;function __construct() {$this->numInst = UTIL::get();}public function change($num) {$this->numInst->change($num);}public function getNum() {return $this->numInst->getNum();}}
类3,同类2:
class SINGLEB {private $numInst;function __construct() {$this->numInst = UTIL::get();}public function change($num) {$this->numInst->change($num);}public function getNum() {return $this->numInst->getNum();}}
最后是调用的地方:
$instA = new SINGLEA();$instA->change(100);var_dump("SINGLEA CHANGED: ");var_dump($instA->getNum());$instB = new SINGLEB();$instB->change(-510);var_dump("SINGLEB CHANGED: ");var_dump($instB->getNum());
最后的显示结果:
string"SINGLEA CHANGED: " (length=17)int110string"SINGLEB CHANGED: " (length=17)int-400