加載類: include("./Ren.class.php"); include "./Ren.class.php"; 用此方法的時候include後面要加空格 require("./Ren.class.php"); require "./Ren.class.php"; require_once("./Ren.class.php"); require_once "./Ren.class.php"; 自動加載類的方法 (全部的類文件要放在同一目錄下,全部類文件的命名規則一致) function __autoload($classname) { require $classname.".class.php"; } $r = new Ren();
設計模式 單例模式:類的計劃生育 1.讓該類在外界沒法造對象 2.讓外界能夠造一個對象,作一個靜態方法返回對象 3.在類裏面經過靜態變量控制返回對象只能是一個 class Dog { static $dx; public $test; private function __construct() { } static function DuiXiang() { //return new Dog(); if(empty(self::$dx)) 靜態要加self { self::$dx=new Dog(); } return self::$dx; } } $a=Dog::DuiXiang(); $b=Dog::DuiXiang(); $b->test="hello"; var_dump($a);
工廠模式: class YunSuan { public $a; public $b; function Jia() { return $a+$b; } function Jian() { return $a-$b; } } abstract class YuanSuan { public $a; public $b; function Suan() { } } class Jia extends YuanSuan { function Suan() { return $this->a+$this->b; } } class Jian extends YuanSuan { function Suan() { return $this->a-$this->b; } } class Cheng extends YuanSuan { function Suan() { return $this->a*$this->b; } } $j = new Cheng(); $j->Suan(); class GongChang { static function ShengChan($f) { switch($f) { case "+": return new Jia(); break; case "-": return new Jian(); break; case "*": return new Cheng(); break; } } } $r = GongChang::ShengChan("*"); $r->a=10; $r->b=5; echo $r->Suan();