gpt4 book ai didi

PHP中常用的魔术方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PHP中常用的魔术方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量:

__construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic,

1,__constuct()构造函数 。

通常实例化完一个对象之后,都要对该对象的属性进行初始化!在实例化一个对象的时候,PHP系统会自动的调用一个名字叫作__construct()的方法,我们把这个方法叫作“构造方法”! 。

其中,构造方法可以没有参数! 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
class Stu {
 
  public $stu_name ;
  public $stu_age ;
 
//构造方法,实例化时自动调用
  public function __construct( $name , $age ){
 
   $this ->stu_name = $name ;
   $this ->stu_age = $age ;
  }
 
}
 
//实例化stu对象
$stu = new Stu( '孙悟空' , '500' );

2.__destruct()析构方法 。

与构造方法是一对,构造方法是在一个对象“出生”的时候由系统自动调用的,而析构方法是在一个对象“消失”的时候由系统自动调用的! 。

析构方法的名字叫__destruct();注意里面不能有任何的参数! 。

?
1
2
3
4
5
6
7
<?php
 
//析构方法
public function __destruct(){
 
}
?>

注意:析构方法是在对象销毁之前调用的!   。

作用:

析构方法的作用一般是用来释放该对象所占用的额外的资源,而不是销毁该对象本身! 。

3,__clone()克隆 。

触发时机:是在克隆一个对象的时候,对新对象进行初始化的工作 。

?
1
2
3
4
5
6
//克隆方法在克隆对象的时候对新对象的初始化工作
 
public function __clone(){
 
  $this ->is_clone=true;
} 

思考:

克隆出来的对象还是不是Student类中的一个实例呢?

我们可以利用instanceof运算符来进行判断! 。

instanceof就是用来判断某个对象是否是某个类的一个实例! 。

需要两个操作数,前面是一个对象变量,后面是一个类名!返回一个布尔值! 。

var_dump($stu instanceof Stu);     //返回bool(true) 。

4.__autoload()自动加载类 。

当调用不存在的类的时候自动调用! 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
/**
* 自动加载类
* 需要什么类__autoload会自动调用需要的文件
*
*/
 
public function __autoload( $class_name )
{
  require_once "../Model/{$class_name}.class.php" ;
}
  ?>

5.__tostring() 。

当将对象当成字符串使用的时候自动调用 。

6.__invoke() 。

当将对象当成函数使用的时候自动调用 。

7,__set() 。

当对无法访问的属性赋值时自动调用(比如:类外调用私有属性) 。

8.__get() 。

当对获取无法访问的属性值的时候自动调用 。

9.__unset() 。

当销毁无法访问的属性的时候自动调用 。

10.__isset() 。

当判断无法访问的属性是否存在的时候自动调用 。

11.__call() 。

当调用无法访问的普通方法时自动触发 。

?
1
2
3
4
5
6
7
8
9
10
<?php
class Stu{
 
  public function __call(){
     echo "error" ;
  }
}
$stu = new Stu();
//此时Stu类里没有show()方法,会触发__call()函数
$stu ->show();

12.__callststic() 。

当无法通过静态方法访问时自动触发 。

?
1
2
3
4
5
6
7
8
9
10
<?php
class Stu{
 
  public static function __callstatic(){
   echo "error" ;
  }
}
$stu = new Stu();
//此时Stu类里没有show()方法,会触发__call()函数
$stu ::show();

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我.

原文链接:http://www.cnblogs.com/zxf100/p/6745055.html 。

最后此篇关于PHP中常用的魔术方法的文章就讲到这里了,如果你想了解更多关于PHP中常用的魔术方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com