`
Tzhennan
  • 浏览: 57938 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP 常用魔术方法的触发时机

 
阅读更多

1)__autoload() :当程序实例化某个类,而该类没有在当前文件中被引入。此时会触发执行__autoload()。程序希望通过该方法,自动引入这个类文件。该方法有一个参数,即就是那个忘记引入的类的名称。__autoload()方法的工作原理是什么?当程序执行到实例化某个类的时候,如果在实例化前没有引入这个类文件,那么就自动执行__autoload()函数。这个函数会根据实例化的类的名称来查找这个类文件的路径,当判断这个类文件路径下确实存在这个类文件后,就执行include或者require来载入该类,然后程序继续执行,如果这个路径下不存在该文件时就提示错误。使用自动载入的魔术函数可以不必要写很多个include或者require函数。

 

2)__construct() :这个是魔术构造方法。构造方法是实例化对象的时候自动执行的方法,作用就是初始化对象。该方法可以没有参数,也可以有多个参数。如果有参数,那么new这个对象的时候要记得写上相应的参数。在php5以前,没有魔术构造方法,普通构造方法是一个跟类名同名的方法来实现构造的。如果一个类中既写了魔术构造方法,又定义了普通构造方法。那么php5以上版本中,魔术方法起作用,普通构造方法不起作用。反之,在php5以前版本中,不认识魔术构造方法,只是把该方法当做普通的方法。

 

3)__destruct() :这个是魔术析构方法。析构方法的作用和构造方法正好相反,是对象被销毁时被自动调用的,作用是释放内存。析构方法没有参数。

 

4)__call() :当程序调用一个不存在或不可见的成员方法时,自动触发执行__call()。它有两个参数,分别是未访问到的方法名称和方法的参数。而第二个参数是数组类型。

 

5)__get() :当程序调用一个未定义或不可见的成员属性时,自动触发执行__get()。它有一个参数,表示要调用的属性的名称。

 

6)__set():当程序试图写入一个不存在或不可见的成员属性时,PHP就会自动执行__set()。它包含两个参数,分别表示属性名称和属性值。

 

7)__tostring() :当程序使用echo或print输出对象时,会自动调用该方法。目的是希望通过该方法将对象转化为字符串,再输出。__tostring() 无参数,但是该方法必须有返回值。

 

8)__clone() :当程序clone一个对象的时候,能触发__clone()方法,程序希望通过这个魔术方法实现:不仅仅单纯地克隆对象,还需要克隆出来的对象拥有原来对象的所有属性和方法。

分享到:
评论

相关推荐

    PHP 魔术方法整理

    在PHP中,魔术方法是一组特殊的方法,它们具有特定的名称,可以在特定的情况下自动触发。魔术方法在PHP的开发中扮演着非常重要的角色,尤其对于面向对象编程而言,它们提供了一种灵活的方式来处理对象的状态和行为。...

    php中的常用魔术方法汇总

    在PHP编程语言中,魔术方法是一组特殊命名的函数,它们在特定的上下文中自动调用,用于增强类的行为和属性处理。以下是PHP中的一些重要魔术方法及其详细解释: 1. **__construct()**: 构造函数在创建新对象时自动...

    php教程之魔术方法的使用示例(php魔术函数)

    在PHP编程语言中,魔术方法是一组特殊的方法,它们在特定的情况下自动被调用,比如当尝试访问不存在的属性或方法时。这些方法都以两个下划线 "__" 开头,因此得名“魔术方法”。在本文中,我们将深入探讨几个重要的...

    python魔术方法指南

    4. **其他常用魔术方法** - **`__repr__`**:提供对象的官方字符串表示形式,主要用于调试。 - **`__str__`**:提供对象的用户友好字符串表示形式。 - **`__add__`**:定义了加法运算符的行为。 - **`__call__`*...

    php中的常用魔术方法总结

    下面是对标题和描述中提到的常用PHP魔术方法的详细解释: 1. **__toString()**: 当尝试将一个对象转换为字符串,例如在`echo`或`print`语句中使用对象时,会自动调用`__toString()`方法。此方法必须返回一个字符...

    详谈PHP面向对象中常用的关键字和魔术方法

    在PHP的面向对象编程中,有多个关键字和魔术方法是经常被用到的,它们各有特定的用途和含义。下面将逐一详细介绍。 首先,关键字`final`在PHP面向对象编程中有着重要的作用。使用`final`关键字可以限定一个类不能被...

    16种魔术方法

    php 概念性知识,全面的魔术方法,不用再找,收藏直接看

    python 魔术方法总结

    python 魔术方法总结

    jQuery源码分析-魔术方法

    jQuery源码分析-魔术方法

    基于PHP5魔术常量与魔术方法的详解

    在PHP5中,魔术常量和魔术方法是两种特殊的语法结构,它们在特定情况下自动触发,为开发者提供了方便的功能和信息。以下是对这些特性的详细解释: **魔术常量**: 1. `__LINE__`:这个常量返回当前代码行的编号,在...

    PHP中的常见魔术方法功能作用及用法实例

    在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利。PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发。这篇文章简单总结了PHP中提供的魔术...

    php 魔术函数和常量一览表

    在PHP编程语言中,魔术函数和常量是其高级特性之一,它们能够在特定条件下自动触发,无需显式调用,从而极大地增强了代码的灵活性和功能。以下是对标题、描述及部分给定内容中提及的PHP魔术函数和常量的详细解析。 ...

    php魔术方法与魔术变量、内置方法与内置变量的深入分析

    PHP中的魔术方法和魔术变量是面向对象编程中的特殊功能,它们允许开发者在一些特定的情况下,使用预定义的命名约定来执行特定操作。在PHP中,魔术方法和变量通常以双下划线(__)开头,并在特定的事件发生时自动调用,...

    PHP之十六个魔术方法详细介绍

    PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不...

    Python魔术方法详解

    在Python中,最常用的魔术方法是__init__,它用于对象的初始化。然而,实际上__init__并不是在对象实例化时调用的第一个方法,这个角色由__new__方法担当。__new__方法负责创建实例并返回,之后__init__方法用于初始...

    php 魔术方法使用说明

    一些在PHP叫魔术方法的函数,在这里介绍一下:其实在一般的应用中,我们都需要用到他们!!1.__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。 Java代码 class Test { function __construct...

    PHP 预定义变量、魔术常量和魔术方法功能与用法小结

    在PHP编程语言中,预定义变量、魔术常量和魔术方法是重要的概念,它们提供了方便的内置功能,有助于简化代码并提高效率。下面将详细解释这些概念及其用法。 预定义变量,也称为超全局变量,是PHP内建的一组全局变量...

    139.jQuery源码分析-魔术方法.rar

    在深入理解jQuery的工作原理时,我们常常会遇到一些“魔术方法”,这些方法在特定场景下自动触发,对对象的行为进行控制。本文将详细解析jQuery源码中的魔术方法,帮助你更好地理解和运用这个强大的工具。 首先,...

Global site tag (gtag.js) - Google Analytics