首頁 頭條 php類魔術方法

php類魔術方法

Jun 28, 2018 pm 02:26 PM

* 1.類別魔術方法:__get(),__set()實作屬性查詢器與設定器

 * 2.魔術方法之前介紹過了,需要特定場景觸發,由物件自動呼叫

 * 3.__get($name): 外部透過物件取得物件私有屬性或不存在的屬性時自動觸發

 * 4.__set($name,$value):外部設定私有屬性或不存在屬性值的時候自動觸發

 * 5.魔術方法可以適用於所有存在或不存在的類別屬性,不需要再為每個屬性建立對應的存取介面

class GirlFriend3 {
    //声明属性
    private $name;
    private $age;
    private $stature;
    private $data=[];
    
    //构造方法
    public function __construct($name='',$age=0,array $stature=[]) 
    {
        $this->name = $name;
        $this->age = $age;
        $this->stature = $stature;
    }
    
    //魔术方法:查询器
    public function __get($name)
    {
//        return $this->$name;
        //加入检测:访问不存在的属性时给出提示信息
//        return isset($this->$name)?$this->$name:'无此属性';
        
        //如果类中添加一个自定义的数据收集器$data,就从这里取值
        $msg = null;
        if (isset($this->$name)) {
            $msg = $this->$name;
        } elseif (isset($this->data[$name])) {
            $msg = $this->data[$name];
        
        } else {
            $msg = '无此属性';
        }
        
        return $msg;
    }
    
    //魔术方法:设置器
    public function __set($name, $value)
    {
        //不做检测直接设置
//        $this->$name = $value;
        
        //完善设置器,实现对不存在属性的创建
        //如果访问的是已存在的属性,则直接输出
        if (isset($this->$name)) {
            $this->$name = $value; //输出属性
        } else {
            //如果属性不存在,则创建它并保存到类属性$data数组中
            $this->data[$name] = $value;
        }
    }
}
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

解釋PHP中的__ Invoke Magic方法。 解釋PHP中的__ Invoke Magic方法。 Apr 12, 2025 am 12:07 AM

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

PHP Class用法實例解析:學習如何定義和使用類別 PHP Class用法實例解析:學習如何定義和使用類別 Mar 11, 2024 pm 02:21 PM

在PHP程式設計中,類別(Class)是一種非常重要的概念,它可以幫助我們更好地組織和管理程式碼,並且提高程式碼的複用性和可維護性。本文將透過實​​例解析的方式,講解如何定義和使用PHP類,同時提供具體的程式碼範例幫助讀者更好地理解。 1.類別的定義在PHP中,使用關鍵字class定義一個類別,範例程式碼如下:classPerson{public$name;

認識PHP的類別與物件:物件導向程式設計基礎 認識PHP的類別與物件:物件導向程式設計基礎 May 11, 2023 am 09:12 AM

PHP是一門開放原始碼的伺服器端腳本語言,它可以嵌入HTML中,可以使用標準的PHP語法或混合HTML和PHP程式碼來建立網站。物件導向程式設計(OOP)是現代程式語言的一種範例,而PHP是支援OOP的語言之一。 OOP編程可以幫助開發者更好地組織和維護複雜的應用程序,提高程式碼的可重複使用性和可擴展性。在PHP中,類別和物件是物件導向程式設計的兩個核心概念。本文將介紹PHP中

PHP程式中的魔術方法最佳實踐 PHP程式中的魔術方法最佳實踐 Jun 07, 2023 am 08:01 AM

魔術方法是PHP程式中重要的特性之一,它們被稱為魔術方法,是因為它們提供了一種在類別中自動執行某些操作的方式,而無需明確地呼叫它們。在PHP中,有多種魔術方法,包括__construct、__destruct、__get、__set、__call、__toString、__sleep、__wakeup、__isset和__unset等等。這些方法不僅有助於提

如何利用魔術方法增強PHP類的功能 如何利用魔術方法增強PHP類的功能 Aug 03, 2023 pm 10:43 PM

如何利用魔術方法增強PHP類的功能引言:PHP擁有許多強大的特性和內建的功能,其中之一就是魔術方法。魔術方法是一組特殊的函數,它們可以在類別中被隱式調用,從而增強類別的功能。本文將探討如何正確地利用魔術方法來加強PHP類的功能,並且提供一些實際的程式碼範例。一、構造方法和析構方法構造方法(__construct)和析構方法(__destruct)是兩個最基本的魔術

PHP類別抽象化 PHP類別抽象化 Aug 30, 2023 pm 11:17 PM

簡介在物件導向程式設計中,抽象類別是可以實例化的,也就是不可能聲明該類別的物件。PHP從5.0版本開始支援抽象類別的概念,用abstract關鍵字定義的類別就成為抽象類別。此外,任何類別

探索PHP類別中抽象方法的作用與必要性 探索PHP類別中抽象方法的作用與必要性 Mar 20, 2024 am 09:33 AM

標題:探索PHP類別中抽象方法的作用與必要性抽象方法是物件導向程式設計中重要的概念,它在PHP類別中扮演關鍵的角色。本文將深入探討PHP類中抽象方法的作用與必要性,並透過具體的程式碼範例來展示其用法與優勢。什麼是抽象方法?在PHP中,抽象方法是指在抽象類別中定義的沒有具體實作的方法。抽象方法必須在子類別中實現,否則子類別也必須聲明為抽象類別。透過定義抽象方法,我們可以要