PHP魔术方法使用
2016-03-30 16:33
766 查看
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魔术方法的使用
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中file_exists()函数不能检测包含中文的文件名的解决办法
- YII框架的类自动加载机制
- YII框架入门
- php 中关于AES 的使用 ,被友盟搞死了
- 利用phpmyadmin修改mysql的root密码及如何进入修改密码后的phpmyadmin
- 3.5 Zend_Db_Table_Rowset
- PHP中常用的转义函数
- 使用PHP判断Web客户端访问设备类型(手机、平板、PC)的方法
- laravel
- PHP 打印函数之 print print_r
- php curl函数实例
- phpcms修改伪静态
- Ubuntu下搭建TFTP服务器【亲测】
- phpcms设置静态页面
- PHP实现聊天应用
- ThinkPHP 3.2 Token表单令牌
- vsftpd.conf详细配置。
- php-win.exe无法定位程序输入点output_globals_id于动态链接库
- php 递归删除目录