列举php中常见的魔术方法,php中常见的魔术方法

在面向对象的编程中,php提供了一些魔术方法,这些魔术方法在我们编写程序中提供了很多的便利。php中通常以__(两个下划线)开头的类方法保留为魔术方法。

php 类中常用的类魔术方法代码

先看下面的示例代码,里面写了一些常用的魔术方法!class myclass{

public function __call($name, $arguments) {

// $name 为方法名

// $arguments 为传递的参数

}

public static function __callStatic($name, $arguments) {

// $name 为方法名

// $arguments 为传递的参数

}

public function __construct($name,$sex){

$this->name = $name;

$this->sex = $sex;

}

public function __desctruct(){

//销毁数据或关闭数据库等工作

}

public function  __get($name) {

if(isset($this->$name)) {

return $this->$name;

}

return '属性不存在';

}

public function __set($name,$value){

$this->data[$name] = $value;

}

private function __isset($name){

return array_key_exists($name,$this->data);

}

public function __unset($name){

unset($this->data[$name]);

}

}

php常用的类魔术方法介绍

__construct()

__construct()构造函数是类中最常使用的函数。在创建对象时,可以在构造函数中做一些初始化工作。可以为构造函数定义任意多个参数,只要在实例化时传入对应个数的参数即可public function __construct($name,$sex){

$this->name = $name;

$this->sex = $sex;

}

注意:构造函数中出现的任何异常都会阻止对象的创建。

__destruct()

此函数通常在对象被销毁时触发,它没有任何的参数,一般用于清理的工作,比如关闭数据库等等!public function __desctruct(){

//销毁数据或关闭数据库等工作

}

__call()

在对象的上下文中调用一个不存在或不可访问的方法时,会触发 __call() 函数!它有两个参数,一个为被调用的方法名,一个为传递给方法的参数!public function __call($name, $arguments) {

// $name 为方法名

// $arguments 为传递的参数

}

注意:参数 $arguments 是一个枚举数组,包含着要传递给方法 $name 的参数。

__callStatic()

在对象的上下文中调用一个不存在或不可访问的方法时,会触发 __callStatic() 函数!它有两个参数,一个为被调用的方法名,一个为传递给方法的参数!public function __callStatic($name, $arguments) {

// $name 为方法名

// $arguments 为传递的参数

}

注意:参数 $arguments 是一个枚举数组,包含着要传递给方法 $name 的参数。

__get()

在尝试访问一个不存在的属性时会__get()函数会被调用。它接收一个参数,该参数表示访问属性的名字,并且将该属性的值返回public function  __get($name) {

if(isset($this->$name)) {

return $this->$name;

}

return '属性不存在';

}

__set()

在尝试修改一个不可访问的属性时__set()函数会被调用,它有两个参数,一个表示属性的名字,一个表示属性的值。public function __set($name,$value){

$this->data[$name] = $value;

}

__isset()

在使用一个不可访问的属性时,isset()方法时会被触发,它只有一个表示属性的名字的参数。它应该返回一个布尔值,用来表示该属性是否存在。代private function __isset($name){

return array_key_exists($name,$this->data);

}

__unset()

在使用unset()函数销毁一个不能访问的属性时__unset()函数会被调用,它只有一个表示属性名字的参数!public function __unset($name){

unset($this->data[$name]);

}

以上就是php类中常用的魔术方法以及介绍,当然还有一些没有介绍到的,比如  __sleep(), __wakeup(), __serialize(), __unserialize(), __toString(), __invoke(), __set_state(), __clone() 以及  __debugInfo() 等,其它的自己查一下资料吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值