批改狀態(tài):未批改
老師批語:
<?php /** * 單例模式:單一實(shí)例,一個類僅允許實(shí)例化一次 * 例如: * 1、一個站點(diǎn)僅僅創(chuàng)建出一個數(shù)據(jù)庫連接對象就夠了 * 2、一個站點(diǎn)僅僅需要一個配置類對象就夠了 * */ class Write { private static $instance=null; private $content = []; private function __construct() { } private function __clone() { // TODO: Implement __clone() method. } public static function Instance() { if(self::$instance==null){ self::$instance = new self(); } return self::$instance; } } $instance = Write::Instance(); $instance1 = Write::Instance(); var_dump($instance,$instance1);
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
<?php /** * 工廠模式 * Class Calculator * */ class Calculator { public static function operation($symbol,array $num=[]) { switch ($symbol){ case '+': return new Add($num[0],$num[1]); break; case '-': return new Sub($num[0],$num[1]); break; case '*': return new Mul($num[0],$num[1]); break; case '/': return new Div($num[0],$num[1]); break; } } } class Add { public $num1; public $num2; public function __construct($num1,$num2) { $this->num1 = $num1; $this->num2 = $num2; } public function result() { return $this->num1+$this->num2; } } class Sub { public $num1; public $num2; public function __construct($num1,$num2) { $this->num1 = $num1; $this->num2 = $num2; } public function result() { return $this->num1-$this->num2; } } class Mul { public $num1; public $num2; public function __construct($num1,$num2) { $this->num1 = $num1; $this->num2 = $num2; } public function result() { return $this->num1*$this->num2; } } class Div { public $num1; public $num2; public function __construct($num1,$num2) { $this->num1 = $num1; $this->num2 = $num2; } public function result() { if($this->num2 != 0){ return $this->num1/$this->num2; }else{ return '除數(shù)不得為0'; } } } $obj = Calculator::operation('+',[3,9]); echo $obj->result().'<br>'; $obj = Calculator::operation('-',[55,9]); echo $obj->result().'<br>'; $obj = Calculator::operation('*',[3,2]); echo $obj->result().'<br>'; $obj = Calculator::operation('/',[3,3]); echo $obj->result();
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
<?php /** * 注冊樹模式 * Class Demo1 */ class Demo1 { } class Demo2 { } class tree { public static $objs = []; public static function set($index, $obj) { self::$objs[$index] = $obj; } public static function get($index) { return self::$objs[$index]; } public static function del($index) { unset(self::$objs[$index]); } } tree::set('Demo1', new Demo1()); tree::set('Demo2', new Demo2()); var_dump(tree::get('Demo1')); tree::del('Demo1'); var_dump(tree::get('Demo1'));
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號