PHP魔术方法使用
PHP魔术方法的使用
1、__get() 和 __set();
2、__call() 和 __callStatic();
3、__toString();
4、__invoke();
1、__get() 和 __set();
一个php类文件为 object.php:
Class Object {
private $array = array();
function __set($key , $value){
var_dump(__METHOOD__);
$this->array[$key] = $value;
}
function __get($key){
var_dump(__METHOOD__);
return $this->array[$key];
}
function __call($func,$param){
var_dump($func,$param);
return 'magic function';
}
static function __callStatic(){
var_dump($func,$param);
return 'magic static function';
}
}
当我们给一个没有的属性赋值时会自动调用__set();
输出一个没有的属性的时候会自动调用__get();
测试代码如下:
$obj = new Object();
$obj->title = 'zhangshan';
echo $obj->title;
会得到以下结果:
2、__call() 和 __callStatic();
当我们访问一个不存的方法时会自动调用__call();
echo $obj->test('Hello World',123);
会得到以下结果:
__callStatic()跟__call()大体相同只不过是针对static声明的方法
echo $obj::test('Hello World',123);
会得到以下结果:
最新文章
- php实现中文转数字,实现方式很智能很php
- 时间戳TimeStamp处理
- WLAN协议相关协议
- (转) Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?
- SQL Server 2008 收缩日志 清空删除大日志文件 转载
- [C#高级编程]基础知识摘要一
- ubuntu中rar与unrar用法详解
- Codeforces Round #250 (Div. 2)——The Child and Set
- [React] Creating a Stateless Functional Component
- log4cxx在vs2013的静态编译
- ural 1192 Ball in a Dream
- hdu2844 &;amp; poj1742 Coin ---多重背包--两种方法
- Session是否为新建情况的判断
- 浏览器缓存相关HTTP头部字段
- mysql高级之编程优化
- KeyValuePair 和 Dictionary 的关系和区别
- DeprecationWarning: Calling an asynchronous function without callback is deprecated. - how to find where the “function:” is?
- configparser配置文件处理
- Webpack 2 视频教程 003 - Webpack 项目初始化
- MR目录结构
热门文章
- asp.net中的cookie
- Bootstrap中的Affix插件
- 批处理之FOR命令
- 【题解】[WC2006]水管局长
- 洛谷 P1607 [USACO09FEB]庙会班车Fair Shuttle 解题报告
- AOJ.559 丢失的数字
- bzoj2002: [Hnoi2010]Bounce 弹飞绵羊 分块
- MFC随机数
- Ubuntu下安装LNMP之独立添加php扩展模块
- How to turn off the binary log for mysqld_multi instances?