PHP5.0后,php面向对象提成更多方法,使得php更加的强大!!
一些在PHP叫魔术方法的函数,在这里介绍一下:其实在一般的应用中,我们都需要用到他们!!
1.__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。
class Test { function __construct() { echo "before"; } } $t = new Test();
输出是:
start
我们知道php5对象模型 和类名相同的函数是类的构造函数,那么如果我们同时定义构造函数和__construct()方法的话,php5会默认调用构造函数而不会调用__construct()函数,所以__construct()作为类的默认的构造函数
2.__destruct() 当删除一个对象或对象操作终止的时候,调用该方法。
class Test { function __destruct() { echo "end"; } } $t = new Test();将会输出end
我们就可以在对象操作结束的时候进行释放资源之类的操作
3.__get() 当试图读取一个并不存在的属性的时候被调用。
如果试图读取一个对象并不存在的属性的时候,PHP就会给出错误信息。如果在类里添加__get方法,并且我们可以用这个函数实现类似java中反射的各种操作。
class Test { public function __get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在
4.__set() 当试图向一个并不存在的属性写入值的时候被调用。
class Test { public function __set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo
5.__call() 当试图调用一个对象并不存在的方法时,调用该方法。
class Test { public function __call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go);
程序将会输出:
您要调用的 getName 方法不存在。参数是:Array
(
[0] => aning
[1] => go
)
6.__toString() 当打印一个对象的时候被调用
这个方法类似于java的toString方法,当我们直接打印对象的时候回调用这个函数
class Test { public function __toString() { return "打印 Test"; } } $t = new Test(); echo $t;
运行echo $t;的时候,就会调用$t->__toString();从而输出
打印 Test
7.__clone() 当对象被克隆时,被调用
class Test { public function __clone() { echo "我被复制了!"; } }$t = new Test(); $t1 = clone $t;程序输出:我被克隆了!8.顺便介绍下php5中提供的几个非常COOl的实验性函数
分享到:
相关推荐
- 学习如何定义类,创建对象,以及使用魔术方法。 第三十一讲至第三十五讲:错误与异常处理 - 理解PHP中的错误类型,学习如何处理运行时错误。 - 引入异常处理机制,学习try-catch-finally结构。 第三十六讲至第四...
080和081讲可能涉及到PHP的高级特性,如PHP的命名空间(namespaces)、自动加载(autoloading)和PHP的魔术方法(magic methods),这些都是现代PHP开发中不可或缺的部分,可以提升代码的组织和复用性。 通过学习...
在创建对象时,我们可以通过构造函数(constructor)来初始化对象的状态,或者使用魔术方法`__set()`和`__get()`动态设置和获取对象属性。此外,可以使用`__isset()`和`__unset()`来检查属性是否存在或删除它。这些...
同时,还讨论了接口和抽象类的使用,以及魔术方法的机制。 第二十六讲至第三十五讲涉及文件操作和错误处理。这部分内容包括文件的读写、目录操作、上传下载功能的实现,以及错误和异常处理的策略,如何使用try-...
7. **PHP魔术方法**:理解__construct、__destruct、__get、__set等魔术方法的作用和使用场景。 【PHP高级篇】 1. **PHP性能优化**:讨论PHP性能瓶颈及优化策略,如缓存技术、代码优化等。 2. **PHP框架**:如...
最后一讲可能涉及PHP的高级特性,如面向对象编程(类、对象、继承、封装和多态)、命名空间、魔术方法,或者一些实用的PHP扩展如PDO(PHP Data Objects)用于更安全的数据库操作。 通过这个系列教程的学习,初学者...
同时,这两个方法也是PHP魔术方法的一部分,它们在特定情况下自动调用,使得我们可以自定义对象行为。 在学习完封装的概念后,可以进一步探索PHP面向对象的其他特性,如继承、接口、抽象类、构造函数、析构函数、...
这部分内容还可能涵盖命名空间、魔术方法、反射、以及PHP的内置对象模型如PDO用于数据库操作,以及Session和Cookie的使用,这些都是PHP开发中不可或缺的部分。 然后,《PHP100教程96~112讲.docx》可能会讨论更高级...
**魔术方法**是PHP提供的一组特殊方法,如`__construct`(构造方法)、`__destruct`(析构方法)、`__get`和`__set`(用于访问私有或受保护的属性),这些方法在特定情况下自动调用,增强了代码的灵活性。...
在高级主题中,可能会涵盖PHP的魔术方法、命名空间、Composer依赖管理工具,以及PHP的最新特性。同时,可能会介绍一些常用的PHP框架,如Laravel或Symfony,以及如何利用它们加速开发进程。 总之,《PHP从入门到精通...
8. **魔术方法** - PHP提供了一系列以双下划线`__`开头的特殊方法,如`__get()`, `__set()`, `__call()`, 等,它们在特定条件下自动调用,帮助处理一些特殊操作。 9. **命名空间** - 命名空间(Namespace)是PHP ...
- **魔术方法**: 了解如`__construct()`, `__destruct()`, `__get()`, `__set()`等特殊方法的作用。 ### 7. 错误与异常处理 - **错误报告**: 设置错误报告级别(`error_reporting()`)和错误处理函数(`set_error_...
5. **其他增强**:还包括对Suhosin安全扩展的支持、改进的数组操作、新的魔术常量、更好的性能优化等。 书中不仅会介绍这些核心概念,还会涉及基本的语法、变量、数据类型、流程控制、函数、类与对象、文件系统操作...
以及**魔术方法**,它们在特定情况下自动调用。 此外,视频教程可能还会涉及**接口**(Interface),它定义了一组方法的签名,类可以实现接口以确保遵循特定的约定。接口在多态性和设计模式中扮演着重要角色。 **...
10. **第30讲:PHP高级话题** - 最后一讲涵盖了PHP的一些高级主题,可能包括魔术常量、命名空间、设计模式、性能优化以及PHP与第三方库的集成。 通过这一系列的深入学习,读者将能够熟练地运用PHP进行Web开发,从...
7. **类与对象的高级特性**:学习抽象类、接口、魔术方法、静态属性和方法、命名空间、Traits等。 8. **对象实例化与克隆**:理解单例模式,了解如何实例化类和克隆对象。 9. **设计模式**:介绍常见的设计模式,...
10. **魔术方法**:PHP提供了一系列以双下划线`__`开头的特殊方法,如`__get()`、`__set()`、`__call()`等,它们在特定情况下自动调用,帮助处理对象的内部操作。 通过这个视频教程,学习者应该能够掌握如何在实际...
此外,书中还讨论了接口、抽象类以及魔术方法等高级特性,帮助开发者熟练掌握PHP的OOP语法。 2. 设计模式 设计模式是解决常见软件设计问题的经验总结,如单例模式、工厂模式、观察者模式等。书中详细解析了多种...
为什么要讲PHP配置文件,因为不同PHP配置文件意味着不同的PHP环境,而有些漏洞可以在特定PHP环境中执行,在其他PHP环境则不行。魔术引号,自动对cooki
进一步来讲,PHP中的其他魔术方法还包括__set()、__get()、__isset()、__unset()等,它们分别在属性的设置、获取、检测以及销毁时被自动调用,使得对象属性的管理变得更加方便和安全。 在PHP中,除了构造函数和析构...