亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

詳談PHP中public,private,protected,abstract等關鍵字的用法

2024-05-05 00:01:42
字體:
來源:轉載
供稿:網友

PHP中常用的關鍵字

在PHP中包含了很多對函數和類進行限制的關鍵字,常用的通常有abstract,final,interface,public,protected,private,static等等,下面我們就將對這些進行分析整理各個的用法。

變量與方法的關鍵字public,private,protected

public的權限最大,既可以讓子類使用,也可以支持實例化之后的調用,

protected表示的是受保護的,訪問的權限是只有在子類和本類中才可以被訪問到

private 表示的是私有,只能夠是在當前的類中可以被訪問到

<?php///*** Define MyClass*/class MyClass{ public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; public function printHello() { echo $this->public; echo $this->protected; echo $this->private; } protected function pro_test(){ var_dump(1); }}$obj = new MyClass();echo $obj->public; // 這行能被正常執行//echo $obj->protected; // 這行會產生一個致命錯誤//echo $obj->private; // 這行也會產生一個致命錯誤$obj->printHello(); // 輸出 Public、Protected 和 Private$obj->pro_test();//直接報錯?>

變量與方法的關鍵字static

static的作用就是能夠實現值或者方法在類中不需實例化的情況下調用,同時static修飾的變量具有與值存儲的功能,例如我們不使用static運行的結果如下:

<?phpfunction test(){ $var=1; echo $var."</br>"; $var++;}test();// 1test();// 1test();// 1?>

如果我們給變量加上static那么就會變成這樣

<?phpfunction test(){ static $var=1; echo $var."</br>"; $var++;}test();// 1test();// 2test();// 3?>

這里可能不能夠體會到PHP這樣做的好處,那么我們就先來假設一下讀者也熟悉JS,在JS中是沒有static這個關鍵字的,所以如果我們要來實現一個具有能夠保存每一次程序運算結果作為下一次運算的依據的一個程序我們需要這樣來寫。

var glo=0; function test(){ glo++; document.writeln(glo); } test(); test(); test();

這樣就會把glo泄漏到全局變量中,如果生成的變量比較多,就會導致內存泄露(內存泄漏所指代的就是變量占用過多的內存空間沒有別釋放)

<script> var glo=0; function test(){ glo++; document.writeln(glo); } test();// 1 test();// 2 test();// 3 </script>

所以相比于在沒有定義static的語言中,它具有一個優勢是保持變量,不泄露內存,也不容易導致全局變量被誤用(因為作用域不在全局)

$age=0;$age++;function test1() { static $age = 100; $age++; echo $age."</br>";}function test2() { static $age = 1000; $age++; echo $age."</br>";}test1(); // 101test2(); // 1001

class與方法的關鍵字final

final只能夠用來修飾class與function,使用了final之后就不能夠被繼承,例如如下的代碼就會直接報錯

class BaseClass { public $public = 'Public'; function test() { echo "BaseClass::test() called/n"; } final public function moreTesting() { echo "BaseClass::moreTesting() called/n"; }}class ChildClass extends BaseClass { public function moreTesting() { echo "ChildClass::moreTesting() called/n"; }}

特殊關鍵字interface,abstract

interface的意義在于規范編程的風格,設想一下就是如果是實現了一個接口那么我們在使用這個接口類的時候就必須要實現里面的方法,起到了統一命名的作用。

class是可以多繼承接口的,接口與接口之間的單繼承是通過extends來實現的,class與接口之間的關系確立是通過implements

示例代碼:

<?phpinterface testA{ function funcA();}interface testB{ function funcB();}interface testC extends testA { function funcC();}class run implements testC ,testB { public function funcA() { // TODO: Implement funcA() method. } public function funcB() { // TODO: Implement funcB() method. } public function funcC() { // TODO: Implement funcC() method. }}?>

abstract的作用跟interface其實是一樣的,但是在interface中所有的方法都是必須要實現的,但是在abstract修飾的類中,可以有一個或者是多個的abstract修飾方法,所以我們可以這樣理解,interface就是abstract的一種特殊情況(當所有的方法都是抽象方法,都是必須要實現的)。abstract有以下的這些特征:

1. 只要類中有至少一個方法使用了abstract關鍵字,那么這個類是abstract,要加上相應的關鍵字

2. 抽象方法,只有方法的聲明部分,沒有方法體。

但是在我看來,abstract在實際的應用中有這樣的幾種場景

1. 多人編程的時候規范公共部分的命名規則(不做任何說明,原理跟interface一樣)

2. 實現不讓父級直接實例化使用

樣式代碼如下:

<?phpabstract class shopping{ public function buy() { echo "buy"; } public function loan() { echo "loan"; }}class leslieBuy extends shopping{}//$test1=new shopping;//直接語法錯誤$leslieSie = new leslieBuy;$leslieSie->loan();//打印出loan?>

以上這篇詳談PHP中public,private,protected,abstract等關鍵字的用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久频这里精品99香蕉| 麻豆精品精华液| 欧美老女人性视频| 国内精品小视频在线观看| 啊v视频在线一区二区三区| 国产亚洲aⅴaaaaaa毛片| 国产精品99久久久久久白浆小说| 国产成人精品久久久| 黄色成人av网| 国产精品久久久久久网站| 亚洲美女久久久| 91精品91久久久久久| 日韩中文字幕在线播放| 亚洲欧美中文字幕在线一区| 亚洲乱码国产乱码精品精天堂| 国产精品男人的天堂| 久久人人爽人人爽人人片av高请| 欧美猛少妇色xxxxx| 欧美亚洲免费电影| 福利二区91精品bt7086| 日韩av快播网址| 成人在线观看视频网站| 神马久久桃色视频| 91精品久久久久久久久久| 啊v视频在线一区二区三区| 色婷婷久久一区二区| 中文字幕国产精品| 日韩激情第一页| 欧美精品电影在线| 精品视频一区在线视频| 久久久久久久激情视频| 欧美精品在线极品| 欧美午夜xxx| 国产精品久久久久久久久久久新郎| 在线观看日韩视频| 欧美国产在线电影| 久久久久久久久久久久av| 日韩免费看的电影电视剧大全| 亚洲欧美在线免费| 国产丝袜一区视频在线观看| 亚洲精品欧美日韩| 自拍偷拍亚洲一区| 国产一区二区三区欧美| 国产精品人人做人人爽| 日韩免费黄色av| 黄网站色欧美视频| 精品久久久久久久大神国产| 日韩有码在线电影| 超碰97人人做人人爱少妇| 日韩精品极品在线观看| 最好看的2019的中文字幕视频| 国语自产精品视频在线看一大j8| 亚洲国产成人久久综合| 日韩的一区二区| 亚洲视频在线观看网站| 国产欧美亚洲精品| 国产成人在线播放| 日韩欧美国产免费播放| 久久久中精品2020中文| 久久精品视频播放| 欧美乱人伦中文字幕在线| 日韩美女毛茸茸| 久久久久国产精品免费| 色偷偷av一区二区三区乱| 欧美精品videos另类日本| 精品国产欧美成人夜夜嗨| 色噜噜久久综合伊人一本| 国产精品一区二区三区在线播放| 久久精品视频在线观看| 大荫蒂欧美视频另类xxxx| 欧美日韩国产va另类| 中文字幕日韩在线观看| 国产成人黄色av| 日韩av男人的天堂| 国产精品丝袜久久久久久高清| 日本亚洲欧洲色| 欧美主播福利视频| 欧美日韩午夜视频在线观看| 亚洲天堂久久av| 国产精品视频中文字幕91| 少妇高潮久久久久久潘金莲| 91精品国产色综合久久不卡98| 亚洲精品日韩在线| 欧美激情视频播放| 国产精品成人在线| 欧美精品第一页在线播放| 亚洲天堂日韩电影| 黑人欧美xxxx| 国产拍精品一二三| 亚洲国产成人精品女人久久久| 日本最新高清不卡中文字幕| 亚洲www在线观看| 日韩av不卡在线| 久久久久免费视频| 亚洲欧美中文日韩v在线观看| 亚洲一区二区三区视频| 欧美精品xxx| 亚洲成人aaa| 欧美午夜片在线免费观看| 97久久精品人搡人人玩| 欧美精品videossex88| 国产精品稀缺呦系列在线| 亚洲第一中文字幕| 亚洲影院色在线观看免费| 欧美精品久久久久a| 欧美理论电影网| 亚洲精品一区久久久久久| 久久久av亚洲男天堂| 欧美专区中文字幕| 中文字幕亚洲专区| 国产精品a久久久久久| 国产精品无码专区在线观看| 黄网站色欧美视频| 久久精品亚洲一区| 精品久久中文字幕久久av| 国产精品免费电影| 蜜臀久久99精品久久久久久宅男| 精品无人区太爽高潮在线播放| 中文字幕亚洲无线码在线一区| 毛片精品免费在线观看| 久久久极品av| 欧美视频在线观看免费| 久久免费国产视频| 97色在线观看免费视频| 欧美成人在线影院| 一本大道久久加勒比香蕉| 欧美专区国产专区| 亚洲一区二区三区香蕉| 色爱av美腿丝袜综合粉嫩av| 亚洲伊人久久大香线蕉av| 国产视频福利一区| 欧美视频精品一区| 毛片精品免费在线观看| 国产日韩欧美夫妻视频在线观看| 日韩av网站大全| 亚洲人成在线观看网站高清| 17婷婷久久www| 俺去亚洲欧洲欧美日韩| 国产日韩在线观看av| 久久久久久久久久久亚洲| 亚洲香蕉在线观看| 国产精品美女主播| 日韩av快播网址| 欧美伦理91i| 日韩网站免费观看| 97视频在线免费观看| 海角国产乱辈乱精品视频| 日韩男女性生活视频| 日韩人体视频一二区| 尤物精品国产第一福利三区| 欧美老女人性生活| 国外日韩电影在线观看| 精品成人av一区| 国产精品99导航| 久久久99久久精品女同性| 色综合亚洲精品激情狠狠| 96国产粉嫩美女| 亚洲级视频在线观看免费1级| 国产精品亚洲激情| 欧美性猛交xxx| 国内精品久久久久影院优| 亚洲欧美日韩中文在线| 色香阁99久久精品久久久| 国产精品自拍偷拍视频|