PHP 將所有以 __(兩個下劃線)開頭的類方法保留為魔術(shù)方法,。所以在定義類方法時,除了上述魔術(shù)方法,,建議不要以 __ 為前綴,。 __construct(), __destruct(),, __call(),, __callStatic(), __get(),, __set(),, __isset(), __unset(),, __sleep(), __wakeup(),, __toString(),, __invoke(), __set_state(),, __clone() 和 __debugInfo() 等方法在 PHP 中被稱為"魔術(shù)方法"(Magic methods),。 在命名自己的類方法時不能使用這些方法名,除非是想使用其魔術(shù)功能。 我們暫可以理解為,,魔術(shù)方法就是一種實例化之后,,不需要手動調(diào)用就能夠執(zhí)行的方法。 __construct() 構(gòu)造函數(shù) PHP 5 允許開發(fā)者在一個類中定義一個方法作為構(gòu)造函數(shù),。 具有構(gòu)造函數(shù)的類會在每次創(chuàng)建新對象時先調(diào)用此方法,,所以非常適合在使用對象之前做一些初始化工作。 <?php class name{ public $s1 = 0; public $s2 = 1; public function __construct(){ //構(gòu)造函數(shù) echo 123; //輸出 } public function s1(){ $this->s2(); } public function s2(){ echo 's2'; } } $name = new name(); // ① 實例化類得到$name對象 ?> 瀏覽器輸出效果: 實例化類的同時傳參數(shù) 代碼: <?php class name{ public $s1 = 0; public $s2 = 1; public function __construct( $a, $b ){ // ③ 構(gòu)造方法定義,、接收參數(shù) var_dump( $a, $b ); //輸出 } public function s1(){ $this->s2(); } public function s2(){ echo 's2'; } } $name = new name( 'a', 'b' ); // ② 實例化同時傳遞參數(shù)a與b ?> 瀏覽器輸出效果: 傳參后把結(jié)果賦給兩個類屬性 <?php class name{ public $s1 = 0; public $s2 = 1; public function __construct( $a, $b ){ $this->s1 = $a; // ④ 將上一行代碼$a接收的值賦給s1屬性 $this->s2 = $b; // ④ 將上一行代碼$2接收的值賦給s2屬性 } public function s1(){ // ⑥ 執(zhí)行s1方法 $this->s2(); // ⑦ 通過this語法調(diào)用s2方法 } public function s2(){ echo $this->s1; // ⑧ 在s2內(nèi)部輸出s1屬性 } } $name = new name( 'a', 'b' ); $name->s1(); // ⑤ 調(diào)用s1的方法 ?> 瀏覽器輸出效果: 構(gòu)造方法只是魔術(shù)方法的一種,。 魔術(shù)方法都是在特定條件下能夠自動執(zhí)行的一種方法。 其它魔術(shù)方法大家可以參考官方手冊:【PHP 手冊】-【語言參考】-【類與對象】-【魔術(shù)方法】 更多分享 三小時學(xué)會 HTML 網(wǎng)頁編輯 HTML丨基本結(jié)構(gòu)與常用格式標(biāo)簽 三小時學(xué)會 CSS 網(wǎng)頁美化 PHP 網(wǎng)站開發(fā) MAC 系統(tǒng)怎么搭建自帶的 PHP 開發(fā)環(huán)境 效率工具 小眾電影 小程序開發(fā) |
|
來自: CKO養(yǎng)成計劃 > 《待分類》