魔术方法php,PHP中常用的魔术方法
我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量:
__construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic;
1,__constuct()构造函数
通常实例化完一个对象之后,都要对该对象的属性进行初始化!在实例化一个对象的时候,PHP系统会自动的调用一个名字叫作__construct()的方法,我们把这个方法叫作“构造方法”!
其中,构造方法可以没有参数!
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();注意里面不能有任何的参数!
//析构方法
public function __destruct(){
}
?>
注意:析构方法是在对象销毁之前调用的!
作用:
析构方法的作用一般是用来释放该对象所占用的额外的资源,而不是销毁该对象本身!
3,__clone()克隆
触发时机:是在克隆一个对象的时候,对新对象进行初始化的工作
//克隆方法在克隆对象的时候对新对象的初始化工作
public function __clone(){
$this->is_clone=true;
}
思考:
克隆出来的对象还是不是Student类中的一个实例呢?
我们可以利用instanceof运算符来进行判断!
instanceof就是用来判断某个对象是否是某个类的一个实例!
需要两个操作数,前面是一个对象变量,后面是一个类名!返回一个布尔值!
var_dump($stu instanceof Stu); //返回bool(true)
4.__autoload()自动加载类
当调用不存在的类的时候自动调用!
/**
* 自动加载类
* 需要什么类__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()
当调用无法访问的普通方法时自动触发
class Stu{
public function __call(){
echo "error";
}
}
$stu = new Stu();
//此时Stu类里没有show()方法,会触发__call()函数
$stu->show();
12.__callststic()
当无法通过静态方法访问时自动触发
class Stu{
public static function __callstatic(){
echo "error";
}
}
$stu = new Stu();
//此时Stu类里没有show()方法,会触发__call()函数
$stu::show();
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
魔术方法php,PHP中常用的魔术方法相关推荐
- 光滑噪声数据常用的方法_数据挖掘中常用的数据清洗方法
是新朋友吗?记得先点蓝字关注我哦- 数据挖掘中 常用的数据清洗方法 在数据挖掘过程中,数据清洗主要根据探索性分析后得到的一些结论入手,然后主要对四类异常数据进行处理,分别是缺失值(missing va ...
- php类退出魔术方法,php类中常用的魔术方法
1.__construct() //构造函数, 2.__destruct()//析构函数, 3.__call() .__callStatic() //调用一个不可访问的方法.调用不可访问的静态方法时被 ...
- 光滑噪声数据常用的方法_数据挖掘中常用的数据清洗方法有哪些?
数据清洗是将重复.多余的数据筛选清除,将缺失的数据补充完整,将错误的数据纠正或者删除,最后整理成为我们可以进一步加工.使用的数据. 所谓的数据清洗,也就是ETL处理,包含抽取Extract.转换Tra ...
- 统计计量 | 统计学中常用的数据分析方法汇总
来源:数据Seminar本文约10500字,建议阅读15+分钟 统计学中常用的数据分析方法汇总. Part1描述统计 描述统计是通过图表或数学方法,对数据资料进行整理.分析,并对数据的分布状态.数字特 ...
- 5种JavaScript中常用的排序方法
5种JavaScript中常用的排序方法 01.冒泡排序 通过相邻数据元素的交换,逐步将待排序序列变为有序序列,如果前面的数据大于后面的数据,就将两值进行交换,将数据进行从小到大的排序,这样对数组的第 ...
- 深度学习中常用的误差方法
深度学习中常用的误差方法有: 标准差(Standard Deviation): 标准差也叫均方差,是方差的算术平方根,反应数据的离散程度 ,标准差越小,数据偏离平均值越小,反之亦然 . 公式为: py ...
- VB的一些项目中常用的通用方法-一般用于验证类
1.VB的一些项目中常用的通用方法: ' 设置校验键盘输入值,数字 Public Function kyd(key As Integer) As Integer '20060728 Dim mycha ...
- lammps和atomsk中常用的建模方法
文章目录 1.Atomsk生成刃型位错 2.Atomsk生成任意角度晶界 3.Atomsk生成孪晶 4.Atomsk生成非晶 5.合金多晶结构建模 6.Atomsk建立管道类模型 7.Atomsk建立 ...
- MPI中常用的通信方法
MPI中常用的通信方法 问题描述 梯形法求解积分的串行程序 使用MPI并行化 使用树形结构优化通信 使用MPI_Reduce优化通信 使用MPI_Bcast优化通信 使用派生数据类型优化通信 使用结构 ...
最新文章
- 【总结】Kylin LDAP配置
- 一文掌握RNA seq,RNA seq课程大汇总
- Quality Center Issue with CAPICOM.DLL not prop...
- Mosquito的优化——epoll优化(七)
- JSON和JSONP (含jQuery实例)(share)
- 美股周一暴跌触发熔断:苹果、特斯拉股价大跌
- 分析 js构造函数:对象方法 、类方法 、原型方法
- 使用MUI框架实现JQ购物车增减
- 19. 镜像二叉树(C++版本)
- 简单理解Zookeeper的Leader选举
- 头文件循环包含,导致找不到定义的类
- html5 查询展示页面,基于Html5的可视化展示页面自动发布方法及系统与流程
- python编写计算器实例,Python只用40行代码编写的计算器实例
- 一种基于LCD1602和AT24C02的单片机多功能电子密码锁设计(附论文+Proteus仿真+C程序等)
- pyqt html编辑器,PyQt笔记——代码编辑器Scintilla的使用方法
- python学习笔记_week19
- 【风口浪尖】徽剑万言书直指蛮子薛身份 “发家史”
- 程序员晒工资,工作 3 年被应届生倒挂!网友:工作 8 年被你倒挂!
- 2012最新网络电台mms地址
- oracle 通过身份证号 查询年龄大于60岁的人
热门文章
- macOS 如何正确安装 Xcode 合适版本
- 八款常用的 Python GUI 开发框架推荐
- 三维重建学习(1):基础知识:旋转矩阵与旋转向量
- VS2010解决方案位置不对和改变程序字体的方案
- dpkg: 处理软件包 xxx (--configure)时出错解决方法
- codeblock 显示 no such file(头文件)
- polymer 绑定html元素,使用在Polymer元素内的light dom中定义的模板
- oracle mysql 效率_关于oracle 数据库效率的优化
- Weka学习四(属性选择)
- 收了100元辛苦费,写了一个最简单的C#ASP.NET的3层架构例子代码,源码是通过代码生成器生成的【写程序的效率神奇的高】...