- php是面向?qū)ο箝_發(fā)語言,且php的面向?qū)ο蟮恼Z法上和java及其類似,下面分幾項(xiàng)對其進(jìn)行整理總結(jié)。
- 面向?qū)ο蟮娜齻€(gè)特性封裝,繼承,多態(tài)。
- php中class的代碼結(jié)構(gòu):
<?php class Site { //構(gòu)造函數(shù) function __construct( $par1, $par2 ) { $this->url = $par1; $this->title = $par2; } //析構(gòu)函數(shù) function __destruct() { print "銷毀 " . $this->name . "\n"; } /* 成員變量 */ var $url; var $title; /* 成員函數(shù) */ function setUrl($par){ $this->url = $par; } function getUrl(){ echo $this->url . PHP_EOL; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title . PHP_EOL; } } $runoob = new Site; $taobao = new Site; $google = new Site; // 調(diào)用成員函數(shù),設(shè)置標(biāo)題和URL $runoob->setTitle( "菜鳥教程" ); $taobao->setTitle( "淘寶" ); $google->setTitle( "Google 搜索" ); $runoob->setUrl( 'www.runoob.com' ); $taobao->setUrl( 'www.taobao.com' ); $google->setUrl( 'www.google.com' ); // 調(diào)用成員函數(shù),獲取標(biāo)題和URL $runoob->getTitle(); $taobao->getTitle(); $google->getTitle(); $runoob->getUrl(); $taobao->getUrl(); $google->getUrl(); ?>- php中類的定義和java及其類似,class 關(guān)鍵字,大括號包括屬性和方法,且類中的屬性和方法只能通過改類的實(shí)例對象訪問,且受制于訪問限制符的控制。
- 類中的屬性使用關(guān)鍵字var進(jìn)行聲明,屬性的語法符合php變量的語法結(jié)構(gòu)。
- 在類中和java類似可以通過this指向當(dāng)前的類。PHP_EOL 為換行符,類對象的創(chuàng)建也和java類似,通過new 關(guān)鍵字創(chuàng)建
- 類對象對類中的屬性和方法的調(diào)用:$類對象 -> 屬性/方法
- php的類存在構(gòu)造函數(shù)和析構(gòu)函數(shù),構(gòu)造函數(shù)用于創(chuàng)建對象且對對象的屬性賦值,php沒有聲明構(gòu)造方法則會自動(dòng)創(chuàng)建默認(rèn)的無參數(shù)構(gòu)造方法。析構(gòu)方法很多語言也會有是在類銷毀的時(shí)候回調(diào)方法,可以處理一些回收的邏輯。
- class中可以定義常量:const ss = "xxxxx"
- php類中的屬性和方法都受權(quán)限控制符控制,權(quán)限包括:public,private,protected三種,不像java,沒有默認(rèn)權(quán)限,其默認(rèn)權(quán)限就是public。
- public:公共權(quán)限,都可以訪問
- private:私有權(quán)限,僅當(dāng)前類中可以訪問
*protected:受保護(hù)的權(quán)限,當(dāng)前類和其子類可以訪問。 - final:此關(guān)鍵字和java一致,其聲明屬性和方法后續(xù)子類都不可以重寫。
- var聲明的屬性默認(rèn)public權(quán)限。
- 和java一致,php的calss也支持static關(guān)鍵字,使用其聲明屬性和方法,不需要實(shí)例類對象調(diào)用,可以通過類名直接調(diào)用屬性和方法。
- 和java不同的是,php對其權(quán)限檢查不是編譯時(shí)校驗(yàn),是在執(zhí)行的時(shí)候校驗(yàn)。
- php中類的繼承:
- 接口:interface,和java一致,聲明接口聲明方法,不需要實(shí)現(xiàn),具體的實(shí)現(xiàn)由其具體的實(shí)現(xiàn)對象實(shí)現(xiàn)。和java也一致,其聲明的方法權(quán)限都是public的。
- 抽象類:和java一致,類中聲明的方法可以部分實(shí)現(xiàn),其實(shí)例對象必須實(shí)現(xiàn)其所有未實(shí)現(xiàn)的方法,其實(shí)現(xiàn)方法的權(quán)限和父類相同或者更為寬松,抽象類和抽象方法使用關(guān)鍵字abstract聲明。
- php中的子類對父類是單繼承,對接口是多實(shí)現(xiàn),繼承使用關(guān)鍵字extends實(shí)現(xiàn),實(shí)現(xiàn)試用關(guān)鍵字implements實(shí)現(xiàn)。
- 子類對父類的繼承,繼承方法,也可以對父類的方法進(jìn)行重寫。
- 子類中調(diào)用父類的方法的語法:parent::方法名,即父親::方法名
- model類:類中非常實(shí)用和使用比較多的一種類型,通常聲明model對象,類中聲明對象屬性和對象方法,在日常開發(fā)中model類和接口數(shù)據(jù)轉(zhuǎn)換通常用到j(luò)son(接口中json數(shù)據(jù)格式,model和json數(shù)據(jù)通常存在編碼和解碼)。
- php針對json及其方便,php5.3版本及其以上直接安裝了json擴(kuò)展,提供了json_encode和json_decode兩個(gè)api實(shí)現(xiàn)對象和json數(shù)據(jù)的轉(zhuǎn)換。
string json_encode ( $value [, $options = 0 ] ) 參數(shù): $value: 需要轉(zhuǎn)換為json數(shù)據(jù)的對象。 options:由以下常量組成的二進(jìn)制掩碼 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。要注意的是 JSON_UNESCAPED_UNICODE 選項(xiàng),如果我們不希望中文被編碼,可以添加該選項(xiàng),第二個(gè)參數(shù)可以不指定(不涉及中文的時(shí)候)。 mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]]) 參數(shù): $json_string: 需要解碼的json數(shù)據(jù)。 $assoc:當(dāng)該參數(shù)為 TRUE 時(shí),將返回?cái)?shù)組,F(xiàn)ALSE 時(shí)返回對象 $depth: 整數(shù)類型的參數(shù),它指定遞歸深度 $options: 二進(jìn)制掩碼,目前只支持 JSON_BIGINT_AS_STRING 后面兩個(gè)參數(shù)可以默認(rèn),只輸入前面兩個(gè)參數(shù)即可。
- php針對json及其方便,php5.3版本及其以上直接安裝了json擴(kuò)展,提供了json_encode和json_decode兩個(gè)api實(shí)現(xiàn)對象和json數(shù)據(jù)的轉(zhuǎn)換。
php語法學(xué)習(xí)3(面向?qū)ο螅?/h2> ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 一、面向?qū)ο? 1-1、定義類 語法: 1-2、創(chuàng)建對象 注意: BMW = Car(),這樣就產(chǎn)生了一個(gè)Car的...
- php基礎(chǔ)語法整理:PHP 腳本以 <?php 開始,以 ?> 結(jié)束:php內(nèi)部每一行代碼以;結(jié)束php向?yàn)g覽器的...
- 類,成員方法,類的實(shí)例化,成員變量,類常量 1.類要在一個(gè)<?php...?>中,不可被分割2.成員方法即類中函數(shù)...
- 把當(dāng)前目錄作為Root Document只需要這條命令即可:php -S localhost:3300 也可以指定...
- 繼上一篇“php面試題之面向?qū)ο螅ㄒ唬卑l(fā)表后,今天繼續(xù)更新。 整個(gè)面向?qū)ο笪恼碌慕Y(jié)構(gòu)涉及的內(nèi)容模塊有: 一、面向...