php魔法函数与魔法常量使用介绍


Posted in PHP onJuly 23, 2017

php 魔术函数

1。__construct()

实例化对象时被调用,
当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。

2。__destruct()
当删除一个对象或对象操作终止时被调用。

3。__call()
对象调用某个方法,
若方法存在,则直接调用;
若不存在,则会去调用__call函数。

4。__get()
读取一个对象的属性时,
若属性存在,则直接返回属性值;
若不存在,则会调用__get函数。

5。__set()
设置一个对象的属性时,
若属性存在,则直接赋值;
若不存在,则会调用__set函数。

6。__toString()
打印一个对象的时被调用。如echo $obj;或print $obj;

7。__clone()
克隆对象时被调用。如:$t=new Test();$t1=clone $t;

8。__sleep()
serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。

9。__wakeup()
unserialize时被调用,做些对象的初始化工作。

10。__isset()
检测一个对象的属性是否存在时被调用。如:isset($c->name)。

11。__unset()
unset一个对象的属性时被调用。如:unset($c->name)。

12。__set_state()
调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。

13。__autoload()
实例化一个对象时,如果对应的类不存在,则该方法被调用。

php 魔术常量

1。__LINE__
返回文件中的当前行号。

2。__FILE__
返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。

3。__FUNCTION__
返回函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

4。__CLASS__
返回类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

5。__METHOD__
返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

 (1)初识魔术方法
Php5.0发布以来为我们提供了很多面向对象的特性,尤其是为我们提供了好多易用的魔术方法,这些魔术方法可以让我们简化我们的编码,更好的设计我们的系统。今天我们就来认识下php5.0给我们提供的魔术方法。

php使用魔法函数和不使用魔法函数比较

/**
* use magic 0.31868386268616s
* not use magic 0.11876797676086s
*/
class Test {
  private $varstr = "123";

  function __get($name) {
    return $this->varstr;
  }
}

function microtime_float()
{
  list($usec, $sec) = explode(" ", microtime());
  return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

$i = 0;
while ($i<100000) {
  $i++;
  $t = new Test();
  $t->varstr;
}

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";

建议尽量少用PHP魔法函数

PHP 相关文章推荐
强烈推荐:php.ini中文版(1)
Oct 09 PHP
Php注入点构造代码
Jun 14 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
PHP文件上传原理简单分析
May 29 PHP
php mysql 判断update之后是否更新了的方法
Jan 10 PHP
深入Apache与Nginx的优缺点比较详解
Jun 17 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
PHP消息队列用法实例分析
Feb 12 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
Laravel实现批量更新多条数据
Apr 06 PHP
php curl上传、下载、https登陆实现代码
Jul 23 #PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 #PHP
laravel自定义分页效果
Jul 23 #PHP
PHP批量删除jQuery操作
Jul 23 #PHP
PHP mysqli事务操作常用方法分析
Jul 22 #PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 #PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 #PHP
You might like
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
php动态添加url查询参数的方法
2015/04/14 PHP
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
python中的sort方法使用详解
2014/07/25 Python
深入解析Python中的WSGI接口
2015/05/11 Python
Python使用turtule画五角星的方法
2015/07/09 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
Python装饰器用法与知识点小结
2020/03/09 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
蔻驰美国官网:COACH美国
2016/08/18 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
小学班主任评语
2014/12/29 职场文书
信仰观后感
2015/06/03 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python