数码资讯
PHP常用魔术方法综述
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
神奇的方法常用的有:__tostring(__call)(__autoload)(克隆)__(__get)(__set)(__isset)(__unset)()
当1。__tostring()用来定义一个输出对象的引用,经常被用来打印一些物体的信息必须有一个返回值
Eg:有一个人类
每=新人(人)
每次应答都会出错。
我们可以添加__tostring()的类的定义方法
复制代码代码如下所示:
__tostring()函数
{
这个名字;
返回$ STR;
}
这2 __clone()对象的副本。
引用赋值
每美元=美元这记忆Per2;只有一个地址
每美元美元=克隆Per2在这个时候已经两个内存地址
3。__call()方法时自动执行的一种功能,不存在被称为类的实例
如果您试图调用一个不存在于类中的函数,就会出现语法错误,以便友好相处。
我们可以声明类中的调用()方法。
复制代码代码如下所示:
功能__call(funname美元,认为美元)
{
Echo called .$funName. is .Printf ($argh). 函数不存在
}
4。__autoload自动加载的功能添加到引用网页类文件
我们都使用过这种情况,我们需要在页面上调用其他PHP文件,我们需要使用包含方法。
但是,如果有需要参考几十页,太繁琐,在这个页面使用的加载方法
复制代码代码如下所示:
功能__autoload($ className)
{
美元包括类名。;
}
因此,如果引用其他类将由类文件的类文件自动引用,类名的名称必须是类名。
在5的私人性质。__get()访问类
如果将类中的属性设置为私有属性,则在类的实例中不能访问它,但如何访问它呢
我们可以用__get()
如:
在类
复制代码代码如下所示:
班上的人
{
私有名称;
私人年龄;
}
实例化每个人=新的人()
每一个> $名称;
但如果我们把__get方法的类
复制代码代码如下所示:
功能__get($产品名称)
{
退货-> $产品名称;
}
当我们再次调用每个名称时,我们可以访问它。
有人会问,所以你可以直接访问私人变量,和明大众有什么区别
如果我们公开声明,我们可以任意读它。如果它是私有的,如果我们增加get方法,每当调用私有属性时,将调用get方法的内容,这样我们就可以在get方法中添加一些逻辑处理。
在6的私有财产。__set()集类
基于同样的原则,我们可以添加__set()函数类。每当我们称之为类的实例分配的私有属性,我们将执行__set功能。
复制代码代码如下所示:
功能(产品名称__set美元,美元的价值)
{
这->美元美元产品名称=值;
}
既然是方法赋值,我们可以做一些逻辑处理。
7。__isset()判断类的私有属性或方法是自动调用如果它存在
首先,我们先介绍的设置方法,这是用来确定属性和方法的存在。然而,我们不能通过类实例判断一个私有属性是否存在于类中。
如果我们使用isset(每-> $name); / /返回值为假,但美元的名称属性确实存在,如何解决呢
uff1a解
1。将名称定义为私有属性
2。添加类定义
复制代码代码如下所示:
功能__isset($产品名称)
{
返回时(这-> $产品名称); / /再里面的类可以访问私有财产
}
在这种情况下,我们调用isset($name)再次;返回值为true;
8。__unset()自动调用在类的私有变量被清除
与此相结合,取消()设置方法可以删除的属性,当我们需要删除类中的属性,如果它是一个公共财产,我们可以直接
删除,但是如果它是私有的,我们不能通过这个方法来做。
如何做到这一点,我们可以用__unset()来实现这种功能的方法,我们需要添加的类
复制代码代码如下所示:
功能__unset($产品名称)
{
Unset(本- > $产品名称);
}
现在我们调用unset($name)了;你可以删除在人类的私有财产,$name
当1。__tostring()用来定义一个输出对象的引用,经常被用来打印一些物体的信息必须有一个返回值
Eg:有一个人类
每=新人(人)
每次应答都会出错。
我们可以添加__tostring()的类的定义方法
复制代码代码如下所示:
__tostring()函数
{
这个名字;
返回$ STR;
}
这2 __clone()对象的副本。
引用赋值
每美元=美元这记忆Per2;只有一个地址
每美元美元=克隆Per2在这个时候已经两个内存地址
3。__call()方法时自动执行的一种功能,不存在被称为类的实例
如果您试图调用一个不存在于类中的函数,就会出现语法错误,以便友好相处。
我们可以声明类中的调用()方法。
复制代码代码如下所示:
功能__call(funname美元,认为美元)
{
Echo called .$funName. is .Printf ($argh). 函数不存在
}
4。__autoload自动加载的功能添加到引用网页类文件
我们都使用过这种情况,我们需要在页面上调用其他PHP文件,我们需要使用包含方法。
但是,如果有需要参考几十页,太繁琐,在这个页面使用的加载方法
复制代码代码如下所示:
功能__autoload($ className)
{
美元包括类名。;
}
因此,如果引用其他类将由类文件的类文件自动引用,类名的名称必须是类名。
在5的私人性质。__get()访问类
如果将类中的属性设置为私有属性,则在类的实例中不能访问它,但如何访问它呢
我们可以用__get()
如:
在类
复制代码代码如下所示:
班上的人
{
私有名称;
私人年龄;
}
实例化每个人=新的人()
每一个> $名称;
但如果我们把__get方法的类
复制代码代码如下所示:
功能__get($产品名称)
{
退货-> $产品名称;
}
当我们再次调用每个名称时,我们可以访问它。
有人会问,所以你可以直接访问私人变量,和明大众有什么区别
如果我们公开声明,我们可以任意读它。如果它是私有的,如果我们增加get方法,每当调用私有属性时,将调用get方法的内容,这样我们就可以在get方法中添加一些逻辑处理。
在6的私有财产。__set()集类
基于同样的原则,我们可以添加__set()函数类。每当我们称之为类的实例分配的私有属性,我们将执行__set功能。
复制代码代码如下所示:
功能(产品名称__set美元,美元的价值)
{
这->美元美元产品名称=值;
}
既然是方法赋值,我们可以做一些逻辑处理。
7。__isset()判断类的私有属性或方法是自动调用如果它存在
首先,我们先介绍的设置方法,这是用来确定属性和方法的存在。然而,我们不能通过类实例判断一个私有属性是否存在于类中。
如果我们使用isset(每-> $name); / /返回值为假,但美元的名称属性确实存在,如何解决呢
uff1a解
1。将名称定义为私有属性
2。添加类定义
复制代码代码如下所示:
功能__isset($产品名称)
{
返回时(这-> $产品名称); / /再里面的类可以访问私有财产
}
在这种情况下,我们调用isset($name)再次;返回值为true;
8。__unset()自动调用在类的私有变量被清除
与此相结合,取消()设置方法可以删除的属性,当我们需要删除类中的属性,如果它是一个公共财产,我们可以直接
删除,但是如果它是私有的,我们不能通过这个方法来做。
如何做到这一点,我们可以用__unset()来实现这种功能的方法,我们需要添加的类
复制代码代码如下所示:
功能__unset($产品名称)
{
Unset(本- > $产品名称);
}
现在我们调用unset($name)了;你可以删除在人类的私有财产,$name
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。