在php中,方法的定義包括兩個部分:方法的宣告和方法體,語法「方法宣告部分{方法體的部分}」;而方法宣告後的一對大括號以及中間的內容就稱之為方法的方法體,方法體的內容包括區域性變數的宣告和php語句。簡單來說,方法體是一個方法的程式碼塊,即花括號包裹部分。
本教學操作環境:windows7系統、PHP8版、DELL G3電腦
一個類的類是有兩個部分組成:變數的宣告和方法的定義。方法的定義包括兩個部分:方法的宣告和方法體
方法宣告部分{
方法體的部分
}
登入後複製
在方法宣告後的一對大括號以及中間的內容就稱之為方法的方法體,方法體的內容包括區域性變數的宣告和php語句。
簡單來說:方法體是一個方法的程式碼塊即花括號包裹部分。
一、類和物件的關係
類的實體化結果是物件,而物件的抽象就是類。在開發過程中,我們通常都是先抽象(幻想)出一個類,再用該類去建立物件(實現幻想的內容)。在程式中,直接使用的是我們(實現幻想)的物件,而不是抽象(幻想)的類。
二、如何抽象一個類
class 類名{
成員屬性:
姓名、性別、年齡、身高、體重
成員方法:
說話、走路、學習、吃飯、開車
}
登入後複製
所有的類都是從成員屬性和成員方法這兩方面去宣告,屬性和方法都是類中的成員,所以屬性又叫做成員屬性,方法又叫做成員方法
1、成員屬性 -->特徵
在物件中直接宣告變數就稱為成員屬性,可以在類中宣告多個成員變數,即物件中可以有多個成員屬性
class Person{
var $name; //宣告第一個成員屬性,用於儲存人的名字
var age; //宣告第一個成員屬性,用於儲存人的年齡
var $sex; //宣告第一個成員屬性,用於儲存人的性別
}
登入後複製
2、成員方法 -->功能
class Person{
var $name; //宣告第一個成員屬性,用於儲存人的名字
var $age; //宣告第一個成員屬性,用於儲存人的年齡
var $sex; //宣告第一個成員屬性,用於儲存人的性別
function say(){ //宣告第一個方法
echo '人在說話'; //定義人說話的功能
}
function run(){ //宣告第二個方法
echo '人在跑步'; //定義人跑步的功能
}
function eat(){ //宣告第三個方法
echo '人在吃飯'; //定義人吃飯的功能
}
}
登入後複製
物件就是把相關的屬性和方法組織在一起。其中成員屬性和成員方法都是可以選的,可以只有成員屬性,也可以只有成員方法,也可以沒有成員。
三、範例化物件
一個類可以宣告多個物件,讓物件去存取成員屬性和成員方法
class Person{
var $name; //宣告第一個成員屬性,用於儲存人的名字
var $age; //宣告第一個成員屬性,用於儲存人的年齡
var $sex; //宣告第一個成員屬性,用於儲存人的性別
function say(){ //宣告第一個方法
echo '人在說話'; //定義人說話的功能
}
function run(){ //宣告第二個方法
echo '人在跑步'; //定義人跑步的功能
}
function eat(){ //宣告第三個方法
echo '人在吃飯'; //定義人吃飯的功能
}
}
// 範例化物件
$sqyy = new Person();
//成員屬性賦值
$sqyy -> name = "伊川";
$sqyy -> sex = "男";
$sqyy -> age = 26;
//存取物件中的成員方法
$sqyy->eat();
登入後複製
四、特殊的物件參照 "$this"
上面的範例中,我們是範例化一個物件之後再給成員屬性賦值和存取成員方法的。那麼 $this也可以在成員方法中使用,代表的是當前的這個物件
成員方法呼叫前的物件是誰,$this就代表誰
class Person{
var $name;
function info(){
$this ->name = "SQYY";
}
}
登入後複製
五、構造方法與解構方法
1、構造方法
構造方法是物件建立完成後第一個被物件自動呼叫的方法,會初始化這個物件,當使用new關鍵字範例化物件時會自動觸發。
<?php
class Person{
//下面是宣告人的成員屬性,都是沒有初始值的,在建立物件時,使用構造方法賦給初始值
var $name; //定義人的名字
var $sex; //定義人的性別
var $age; //定義人的年齡
function __construct($name="SQYY",$sex="男",$age=1){
$this -> name = $name; //在建立物件時,使用傳入的引數$name為成員屬性 $this->name賦初值
$this -> sex = $sex; //在建立物件時,使用傳入的引數$sex為成員屬性 $this->sex賦初值
$this -> age = $age; //在建立物件時,使用傳入的引數$sex為成員屬性 $this->age賦初值
}
//下面宣告人的成員方法
function say(){
echo "我的名字:" .$this ->name. " ,性別:" .$this -> sex ." 年齡" .$this ->age. "。<br>";
}
}
$person1 = new Person(); //建立物件$person1時會自動執行構造方法,預設傳參
$person2 = new Person('張三'); //建立物件$person2時會自動執行構造方法,傳入第一個引數,其他預設傳參
$person3 = new Person('李四','男'); //建立物件$person3時會自動執行構造方法,傳入前兩個引數,其他預設傳參
$person4 = new Person('王五','女','20'); //建立物件$person4時會自動執行構造方法,傳入所有引數
$person1 ->say();
$person2 ->say();
$person3 ->say();
$person4 ->say();
?>
登入後複製
執行結果
2、解構方法
物件在銷燬之前最後一個被物件自動呼叫的方法,先建立 傳入變數後銷燬
<?php
header('Content-type:text/html;charset=utf-8');
// 定義一個汽車的類
class car{
// 成員屬性
public $name;
public $color;
//構造方法
public function __construct($name,$color){
$this->name = $name;
$this->color = $color;
echo "你建立了".$this->name.'<br>';
}
// 解構方法
public function __destruct(){
echo "你銷燬了".$this->name.'<br>';
}
}
// 範例化物件
$hanma = new car('悍馬','粉色','H2');
$bmw = new car('寶馬','紅色','X7');
$benchi = new car('賓士','黑色','s600');
// unset($bmw);
$bmw = '1111';
?>
登入後複製
執行結果
如果我們不參照變數,建立完物件之後就會銷燬。
<?php
header('Content-type:text/html;charset=utf-8');
// 定義一個汽車的類
class car{
// 成員屬性
public $name;
public $color;
//構造方法
public function __construct($name,$color){
$this->name = $name;
$this->color = $color;
echo "你建立了".$this->name.'<br>';
}
// 解構方法
public function __destruct(){
echo "你銷燬了".$this->name.'<br>';
}
}
// 範例化物件
new car('悍馬','粉色','H2');
new car('寶馬','紅色','X7');
new car('賓士','黑色','s600');
?>
登入後複製
執行結果
推薦學習:《》
以上就是php方法體是什麼的詳細內容,更多請關注TW511.COM其它相關文章!