類和對象的關系
可以將類看成為一件模具,倒入不同的材料(屬性和方法),這些材料用于構建獨特的對象
類的基本組成部分
屬性:類中的變量,用于儲存數據
方法:類中的函數,用于操作和訪問類的屬性
類及其屬性和方法的創建
定義類
class Class_name{
? ? ? ? 定義成員變量
? ? ? ? var $variate_name;
?
? ? ? ? 定義變量并指定默認值
? ? ? ? var $variate_name = value;
?
? ? ? ? 定義成員函數
? ? ? ? function function_name(){
? ? ? ? ? ? ? ? code block;
????????}
?
}
對象的創建及使用
對象是由類生成的具體實例,包含了類定義的屬性及方法。
1.使用關鍵字new,通過類實例化對象
$object_name = new class_name();
?
2.屬性的賦值:對象使用操作符,指定屬性名進行賦值
$object_name -> attribute_name = value;
?
3.方法的調用:對象使用操作符。指定方法名進行調用
$object_name -> method_name(parameter);
?練習及講解
源碼
<?phpheader("content-type:text/html;charset=utf8");class scan {//成員變量var $target;var $strength = 'medium'; //默認掃描強度為medium//成員函數function task($name='匿名'){echo $name . "正在對目標" . $this->target . '進行掃描' . "掃描強度為" . $this->strength;}}//實例化對象$person1 = new scan();//輸出對象詳細信息var_dump($person1) ;/* object(scan)#1 (2) { ["target"]=> NULL ["strength"]=> string(6) "medium" }*/echo '<br>';//調用對象內task方法$person1->task();//匿名正在對目標進行掃描掃描強度為medium//創建第二個對象,并指定target屬性$person2 = new scan();$person2->target = '192.168.1.1';echo '<br>';var_dump($person2);/* object(scan)#2 (2) { ["target"]=> string(11) "192.168.1.1" ["strength"]=> string(6) "medium" }*///調用對象內task方法并傳入實參$person2->task('you');//you正在對目標192.168.1.1進行掃描掃描強度為medium?>
實例講解
class scan {
? ? ? ? //成員變量
? ? ? ? var $target;
? ? ? ? var $strength = 'medium'; //默認掃描強度為medium? ? ? ? //成員函數
? ? ? ? function task($name='匿名'){
? ? ? ? ? ? ? ? echo $name . "正在對目標" . $this->target . '進行掃描' . "掃描強度為" . $this->strength;
? ? ? ? }? ? }
?
定義類名為scan的類,類中定義成員變量target和strength,添加屬性strength默認值為medium。
創建成員函數task,定義傳參參name,默認值為 匿名 。
方法內部使用echo語句輸出,由$name,$target,$strength屬性構造的字符串。
特殊變量$this,代表當前對象,可以通過$this調用當前對象的屬性及方法。
實例化對象
通過new實例化對象person1
?
$person1 = new scan();
?
var_dump輸出對象詳細信息
?
var_dump($person1);
?
object(scan)#1 (2) { ["target"]=> NULL ["strength"]=> string(6) "medium" }
?
變量類型為對象,由scan類的實例,編號為1。對象有兩個屬性,target屬性值為空,strength屬性類型為字符串長度為6個字符,具體為medium。
調用對象內方法
$person1->task();
由于未指定成員變量屬性值和方法參數,target屬性默認為空,medium屬性默認為medium,name默認為匿名。
輸出內容:
匿名正在對目標進行掃描掃描強度為medium
創建新的對象,指定成員變量屬性值,調用方法傳入實參
創建對象person2
?
$person2 = new scan();
?
指定target屬性值
?
$person2->target = '192.168.1.1';
?
輸出對象詳細信息
?
var_dump($person2)
?
object(scan)#2 (2) { ["target"]=> string(11) "192.168.1.1" ["strength"]=> string(6) "medium" }
?
調用方法并傳入實參
?
$person2->task('you');
?
you正在對目標192.168.1.1進行掃描掃描強度為medium
?