標籤:bsp include sel 解構函式 strong 地址 影響 ons 封裝
一:在php中,用class關鍵字來建立一個類,即進行封裝;在類裡面有成員屬性和方法行為組成:
1.成員屬性:用關鍵字var來聲明,可以給初始值也可以不給;現在var廢棄,用public來聲明,public為共有屬性,在任何地方都可以訪問
/*名稱*/ public $name = "房明"; /*學號*/ public $no; /*成績*/ public $score;
2.行為方法:和js中的函數類似,一般用public來聲明
/*唱歌*/ public function sing($songName) { echo "學生會唱{$songName}歌"; } /*跑步*/ public function run() { return "學生去跑步了"; }
特別注意:在類裡面調用自己的屬性和方法的時候,用到"$this->..."
public function showSelf(){ echo "我叫{$this->name},我的學號是{$this->no},我考了{$this->score}分,{$this->run()}"; }
二:new關鍵字執行個體化對象
要想操作類裡面的屬性和方法,必須要執行個體化一個對象;
每一個對象都是獨立的,通過對象改變屬性只能改變自己記憶體空間的資料,互不影響;
通過"->"來訪問類裡面的屬性和方法,類似於c中的指標,通過"="進行賦值;
$student1 = new Student1(); //建立記憶體空間,然後把地址傳遞給對象$student1->name = "張三"; //通過"->"來訪問類裡面的屬性和方法,類似於c中的指標,通過"="進行賦值$student1->no = "1001";$student1->score = "100";$student1->showSelf();
三:引用外部類:
引用外部類:include,required;前者在錯誤時會出現一個警告,後者會出現一個致命的錯誤
在不確定外部類是不是用了一次的情況下,為了避免出現衝突,可以用include_once或者required_once
代碼:我單獨建了一個Student類,頁面代碼如下:
class Student{ public $name; public $age;}
然後我想在main頁面用這個類,那麼在main頁面需要的代碼如下:
include_once "Student.class.php";$student = new Student();
四:建構函式和解析函數
建構函式:__construct()初始化參數,當執行個體化類的時候會調用這個函數,屬於魔術方法,前面是兩個底線;
解構函式:__destruct(),當記憶體被回收的時候調用這個函數;
代碼:
class Student{ public $name; public $age; /*************建構函式:__construct()初始化參數******************/ public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function show(){ echo $this->name."今年".$this->age."歲了"; } /************解構函式:******************/ public function __destruct() { echo $this->name."記憶體被回收"; }}$student = new Student("房明","18");$student->show(); //此時列印的結果為:房明今年18歲了
php學習八:封裝