php物件的方法或者屬性是什麼

2022-02-15 16:00:12

在php物件中,方法是指在類結構中建立的函數,是實現類中的一個行為,是類的一部分;而屬性是指在類結構中直接宣告的變數,物件中可以有多個屬性,每個變數都儲存物件不同的屬性資訊。

本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦

首先來簡單瞭解下相關概念:

  • :class,是定義物件導向主體最外層結構,也是用來包裹主體資料和功能(函數),類是一類具有共性事務的代表,代表的是事務的共性。

  • 物件:object,是某類事務的具體代表,也是實際資料和功能操作的具體單元,也被稱為範例(instance)。

  • 範例化:new,從一個抽象的概念得到一個符合抽象概念的具體範例過程。

  • 類成員:member,指類class結構中的所有內容,類成員裡有三種;

  • 方法:method,本質是在類class結構中建立的函數,也稱為成員方法,或者成員函數。

  • 屬性:property,本質是在類class結構中建立的變數,也稱為成員變數。

下面來重點聊聊 屬性和方法 。

成員屬性

在類中直接宣告的變數稱為成員屬性(也可以稱為成員變數),可以在類中宣告多個變數,即物件中可以有多個成員屬性,每個變數都儲存物件不同的屬性資訊。語法格式如下:

存取許可權修飾符 屬性名稱 = 屬性值;

成員屬性的型別可以是 PHP 中的標量型別和複合型別,所以也可以是其他類範例化的物件,但在類中使用資源和空型別是沒有意義的。

前面我們紹過,宣告變數時不需要任何關鍵字修飾,但是在類中宣告成員屬性時,變數前面一定要使用一個關鍵字來修飾,例如 public、private,static 等,但這些關鍵字修飾的變數都具有一定的意義。如果不需要有特定意義的修飾,可以使用「var」關鍵字,一旦成員屬性有其他的關鍵字修飾就需要去掉「var」。

常用存取許可權修飾符及其含義如下所示:

  • public:公共的,在類的內部、子類中或者類的外部都可以使用,不受限制;

  • protected:受保護的,在類的內部和子類中可以使用,但不能在類的外部使用;

  • private:私有的,只能在類的內部使用,在類的外部或子類中都無法使用。

注意:一個類,即一對大括號之間的全部內容都要在一段程式碼中,也就是一個<?php ... ?>之間,不能分割成多塊。

【範例】建立一個 Students 類並在類中宣告一些成員屬性,程式碼如下所示:

<?php
    class Students{
        var $name;
        public $age;
        private $sex;
        public static $school;
    }
?>

提示:許可權修飾符可以和定義靜態變數的關鍵字 static 混合在一起使用,如上面程式碼中所示。

成員方法

在類中定義的函數被稱為成員方法。函數和成員方法唯一的區別就是,函數實現的是某個獨立的功能,而成員方法是實現類中的一個行為,是類的一部分。

可以在類中宣告多個成員方法,成員方法的宣告和函數的宣告完全一樣,只不過在宣告成員方法時可以在function關鍵字的前面加一些存取許可權修飾符來控制存取許可權,例如 public、private、protected 等。

另外需要注意的是,宣告的成員方法必須和類是相關的,不能是一些沒有意義的操作。例如,在宣告學生類時,如果宣告了「飛行」的成員方法,範例化出來的每個學生都可以飛了,這樣就是一個設計上的錯誤。

【範例】在上面範例中建立的 Students 類中建立一些成員方法。

<?php
    class Students{
        var $name;
        public $age;
        private $sex;
        public static $school;
        public function Write(){
           
        }
        protected static function Read(){
        }
        function Listen(){
           
        }
    }
?>

成員方法前面的許可權修飾符可以省略,省略後預設許可權為 public。在類中成員屬性和成員方法的宣告都是可選的,可以同時存在,也可以單獨存在,具體可以根據實際情況而定。

在 PHP7 中,引入了型別宣告,我們可以為成員方法的形參和返回值宣告型別,格式如下所示:

[許可權修飾符] function 方法名 (型別 引數1, 型別 引數2, ..., 型別 引數n) : 返回值型別 {
    ... ...
}

PHP7 中支援宣告的引數型別包括整型、浮點型、字串型和布林型別。範例程式碼如下所示:

<?php
    class Students{
        var $name;
        public $age;
        private $sex;
        public static $school;
        public function Write(string $a, int $b):bool{
           
        }
        protected static function Read(string $str):int{
        }
        function Listen(int $num):bool{
        }
    }
?>

範例化物件並存取物件中的成員

物件中包含成員屬性和成員方法,存取物件中的成員和存取陣列中的元素類似,只能通過物件的參照來存取物件中的成員。但還要使用一個特殊的運運算元號->來完成物件成員的存取,存取物件中成員的語法格式如下所示:

變數名 = new 類名(引數);   //範例化一個類
變數名 -> 成員屬性 = 值;   //為成員屬性賦值
變數名 -> 成員屬性;           //直接獲取成員屬性的值
變數名 -> 成員方法();        //存取物件中的成員方法

下面通過一個範例來演示一下:

<?php
header("Content-type:text/html;charset=utf-8");
class Website{
    public $name, $url, $title;
    public function demo(){
        echo '成員方法 demo()';
    }
}
$student = new Website();
$student -> name = 'TW511.COM';
$student -> url = 'https://www.php.cn/';
$student -> title = '範例化物件';
echo $student -> name.'<br>';
echo $student -> url.'<br>';
echo $student -> title.'<br>';
$student -> demo();
?>

1.png

推薦學習:《》

以上就是php物件的方法或者屬性是什麼的詳細內容,更多請關注TW511.COM其它相關文章!