類的定義:
<?php
class 類名
$this->變數名; //$this表示自身的物件
}//建立類並呼叫類成員及方法
$物件名=new 類名;
$物件名->成員變數名=值; //呼叫成員變數並賦值
$物件名->方法名(); //呼叫成員方法
?>
建構函式:用於對成員變數進行初始化
<?php
class person
} $bob=new person("bob",180); //定義了乙個bob物件並傳入bob和180的引數
echo $bob->name; //此時輸出名字"bob"
echo $bob->height; //輸出身高為180
?>
析構函式:用於物件呼叫完函式後,釋放空間。函式名為__destruct
繼承:
用於繼承已定義好的類,php不支援多繼承。使用關鍵字extends
只能繼承父類的public、protected成員變數和方法,private成員變數和方法不能繼承。
<?php
//定義乙個父類
class people
//定義乙個保護許可權的方法
protected function showage()
//定義乙個私有訪問許可權的方法
private function showsalary()
//定義符類的建構函式
function __construct()
}//建立乙個子類繼承父類
class coder extends people
function showprotected()
function showprivate()
function showprotectedhanshu()
function showprivatehanshu()
} //建立乙個子類的物件
$bob=new coder();
echo $bob->name;//成功輸出說明繼承了父類的public成員屬性
//通過子類的輸出protected變數方法測試是否繼承父類的protected成員屬性
echo $bob->showprotected(); //成功輸出,說明繼承了protected成員屬性
echo $bob->showprivate();//報錯,說明未繼承父類的private屬性
//---------測試繼承父類的方法----------
echo $bob->showname();//成功輸出說明繼承了父類的public方法
echo $bob->showprotectedhanshu();//成功輸出說明繼承了父類的protected方法
echo $bob->showprivatehanshu();//報錯,說明未繼承父類private方法
?>
子類若定義了構造方法則不會呼叫父類的構造方法,若子類沒有定義構造方法則會呼叫父類的構造方法(見上例)
子類中若需要呼叫父類中的方法,可以通過:parent::方法名();或父類名::方法名();呼叫。
方法重寫:當繼承以後可以對父類的方法進行重寫,此時將覆蓋之前的內容。子類重寫時,訪問許可權不能小於父類方法的訪問許可權。如父類為public,子類不能為protected
<?php
//先定義乙個person類
class person
}//定義person2類,繼承person類
class person2 extends person
}//建立乙個person2類的物件
$alice=new person2;
$alice->name="alice";
$alice->weight="65kg";
echo $alice->name;
echo $alice->weight;
$alice->print_name(); //此時僅會輸出weight
?>
類的成員變數的三種訪問許可權:
訪問private和protected成員需要通過類內public函式訪問
<?php
class a
function showinfo()
} $bob=new a();
//若加入此**會報錯$bob->n1=100;
//cannot access private property
$bob->setn1(10,20);
$bob->showinfo();
?>
static變數
靜態變數與全域性變數原理相似,但靜態變數只能通過類來訪問,全域性變數破壞了封裝性
定義:
<?php
class people
} $bob=new people; //建立乙個物件bob
$bob->addpeople();
$alice=new people; //增加乙個物件alice
$alice->addpeople();
echo people::$num; //類外訪問靜態變數,訪問靜態變數的值
?>
**靜態方法(類方法)**只能操作靜態變數,不能操作非靜態變數
普通的方法可以操作靜態變數也可以操作非靜態變數
定義
<?php
class people
}?>
final關鍵字
如果乙個類被宣告為final類則此類不能被繼承,若乙個類中的成員方法被宣告final則此類不能被重寫,但可以被繼承,不能修飾成員屬性。
<?php
//定義父類people1,其中的print_age()方法被宣告為final
class people1
final function print_age()
}//定義子類people2繼承父類people1,此時不能對父類中的print_age方法進行重寫,如重寫則報錯
class people2 extends people1
} $bob=new people2;
$bob->age=19;
$bob->name="bob";
$bob->height=187;
$bob->print_name();
$bob->print_age();
$bob->print_height();
?>
抽象類
介面
const常量
web安全學習 web安全防禦
影響web安全的主要因素就是使用者輸入的不可控,這篇文章就從乙個巨集觀的角度來分析一下如何去保證乙個應用程式的安全。為了保證web安全,首先就是要分析應用程式中那些方面容易遭受到攻擊,然後根據分析結果在制定具體的安全方案。web應用程式的基本安全問題 所有使用者的輸入都是不可信的 致使應用程式實施大...
Web安全學習規劃
網際網路進入下半場,競爭越發的激烈,能與人工智慧比肩的熱門職業已然不多。而網際網路越發達,各大企業所面臨著各種網路安全問題會越發的嚴峻,web安全工程師的人才缺口仍在不斷擴大。經濟理論揭示了需求大於供給時,供給方必然漲價的市場定論,也為此奠定了web安全工程師高薪資的市場基礎。安全技術是乙個完全可量...
Web安全學習路線
目錄 菜鳥web安全學習路線 1.程式設計基礎 2.計算機網路知識 3.網路裝置基本配置 4.windows linux基本命令 5.搭建伺服器 6.web漏洞概念 7.滲透測試工具 8.滲透測試實戰操作 9.關注安全圈動態 osi七層網路模型 tcp ip四層概念模型 網路協議 應用層應用層 ht...