php面向對象之魔術方法
這篇文章主要介紹了關於php物件導向之魔術方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
常見魔術方法
屬性相關
__set($property, $value) 给不可访问的属性赋值 __get($propertyName) 调用不可访问的属性 __isset($content) 对不可访问的属性使用empty()、isset()时触发 __unset($content) 对不可访问的属性使用unset()时触发
方法相關
__call(string $function_name, array $arguments) 调用不可访问的普通方法 $function_name 被调用的方法名 $arguments 被调用方法的多个参数 __callStatic(string $function_name, array $arguments) 调用不可访问的静态方法
綜合範例
<?php class Example { // 可访问的属性 public $price = 111; //不可访问的属性 private $secret = '我是不可访问的属性'; private $age = 23; //不可访问的普通方法 private function donTell() { echo '不能说的秘密'; } //不可访问的静态方法 private static function super() { echo '我是不可访问的静态方法'; } //魔术方法 public function __set($property, $value) { echo '给不可访问的属性赋值,您要设置的属性是'.$property.',值是'.$value; $this -> $property = $value; } public function __get($propertyName) { echo '调用私有属性'.$propertyName.',它的属性值是'.$this -> $propertyName; } public function __isset($content) { echo '你在对不可访问的属性进行empty()、isset()操作'; isset($this->$content); } public function __unset($content) { echo '你在对不可访问的属性进行unset()操作'; isset($this->$content); } public function __call($function_name,$args) { echo '你在调用不可访问的普通方法'; echo '方法名是'.$function_name; var_dump($args); } public static function __callStatic($function_name,$args) { echo '调用不可访问的静态方法'; echo '方法名是'.$function_name; } } //实例化对象 $e1 = new Example(); /******* 触发各种魔术方法 ***********/ // 测试__set方法 $e1 -> secret = '我是秘密'; echo '<hr/>'; // 测试__get方法 $e1 -> age; echo '<hr/>'; // 测试__isset()方法 echo isset($e1 -> age); echo '<hr/>'; // 测试__unset方法 unset($e1 -> age); echo '<hr/>'; // 测试__call方法 $e1 -> donTell([1,2,3]); echo '<hr/>'; // 测试__callStatic方法 $e1 -> super(); ?>
相關推薦:
以上是php面向對象之魔術方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

深入解讀PHP物件導向的封裝性封裝是物件導向程式設計的三大特徵之一,它是指將資料和對資料的操作封裝在一個類別中,對外部程式隱藏具體的實作細節,提供對外的介面。在PHP中,透過使用存取修飾符(public、protected、private)來控制屬性和方法的可存取性,實現封裝的概念。首先,我們來了解一下存取修飾符的作用:public(公開的):公開的屬性和方法可以

python元程式設計基礎Python元程式設計是動態地操作Python程式碼的能力,這使得Python成為一門非常強大的語言。元編程可以透過以下幾種方式實現:類別裝飾器:類別裝飾器是一種修改類別定義的裝飾器。它可以用來新增或修改類別的屬性和方法,也可以用來控制類別的實例化過程。 defadd_method_to_class(cls):defnew_method(self):print("Thisisanewmethod")setattr(cls,"new_method",new_method)returncls@a

PHP魔術方法的執行順序遵循以下規則:優先順序高的魔術方法優先執行。如果子類別和父類別都定義了同名的魔術方法,則優先執行子類別的魔術方法。如果一個類別既定義了一個常規方法,又定義了同名的魔術方法,則優先執行常規方法。

如何透過PHP物件導向簡單工廠模式實現物件的版本控制和管理在開發大型的、複雜的PHP專案時,版本控制和管理是非常重要的一環。透過適當的設計模式,我們可以更好地管理和控制物件的創建和使用,從而提高程式碼的可維護性和擴展性。本文將介紹如何使用PHP物件導向簡單工廠模式來實現物件的版本控制與管理。簡單工廠模式是一種創建類別的設計模式,它透過一個工廠類別來實例化指定的對象

什麼是魔術方法?如何在 Laravel 的應用?以下這篇文章跟大家介紹PHP 魔術方法在 Laravel應用的方法,希望對大家有幫助!

PHP開發中,反射和魔術方法是兩種常用的技巧。當我們需要自動產生程式碼或動態呼叫某些函數時,反射和魔術方法可以使我們的程式碼更加靈活和有效率。在本文中,我們將探討如何使用反射和魔術方法來實現程式碼自動產生和動態呼叫。反射是PHP提供的一種強大的工具,它可以幫助我們在程式運行時取得類別、方法和屬性等資訊。透過反射,我們可以動態地獲取類別或物件的方法、屬性和註釋等信息,使

PHP是一種基於C語言開發的伺服器端腳本語言,它在Web開發中廣泛應用。而函數是程式中最基本、最常用的組成部分之一,PHP也提供了許多與函數相關的魔術方法,可以幫助開發者更好地利用函數的優勢。在本文中,我們將介紹PHP函數的魔術方法及其用法。 __construct()__construct()是PHP中最常用的魔術方法之一,它在建立物件時會自動調用,用於初始化
