PHP面向对象1-重载overloading
来源:互联网 发布:桌面设计软件 编辑:程序博客网 时间:2024/05/17 17:39
PHP中的重载,并不是传统意义上的重载。
当程序中碰到未定义的属性或方法时,自动调用对应的方法进行处理,就是PHP中的重载!!!
链接:http://www.php.net/manual/zh/language.oop5.overloading.php
1.属性重载
__set(),__get(),__isset(),__unset()四个方法,分别用于赋值,取值,判断是否赋值,释放。
1.__set()
赋值时,如果属性不存在,则自动调用该方法。
private $data = array();function __set($name, $value) { $this->data[$name] = $value;}
2.__get()
取值时,如果属性不存在,则自动调用该方法。
private $data = array();function __get($name) { if (array_key_exists($name, $this->data)) { return $this->data[$name]; } $trace = debug_backtrace(); trigger_error( 'Undefined property via __get(): ' . $name . ' in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'], E_USER_NOTICE); return null;}
3.__isset()
判断属性是否存在时,如果属性不存在,则自动调用该方法。
private $data = array();function __isset($name) { return isset($this->data[$name]);}
4.__unset()
释放属性时,如果属性不存在,则自动调用该方法。
private $data = array();function __unset($name) { unset($this->data[$name]);}
2.方法重载
__call(),__callStatic()总共2个方法,分别会在对象中调用不可访问方法时或在静态上下文中调用不可访问方法时被调用。
1.__call()
在对象中调用一个不可访问方法时,__call() 会被调用。
function __call($name, $arguments) { echo "Calling object method '$name' " . implode(', ', $arguments). "\n";}
2.__callStatic()
在静态上下文中调用一个不可访问方法时,__callStatic() 会被调用。
function __callStatic($name, $arguments) { echo "Calling static method '$name' " . implode(', ', $arguments). "\n";}
阅读全文
0 0
- PHP面向对象1-重载overloading
- PHP面向对象_重载(overloading)
- php面向对象之重载(overloading)
- PHP 面向对象:方法重载
- PHP面向对象之重载
- 黑马程序员-Java面向对象之重载(overloading)和重写(overriding)
- 类与对象(PHP5)之重载(Overloading)
- PHP 面向对象的方法重载
- PHP 面向对象的方法重载
- PHP面向对象之重写与重载
- PHP面向对象之重写与重载
- php面向对象之重写与重载
- PHP面向对象之重写与重载
- 【PHP面向对象技术】PHP 实现函数重载
- PHP面向对象(1)
- PHP那些事:面向对象的方法重载
- php 面向对象abstract,interface,重载,子类继承父类
- php __call()的用法之面向对象重载
- Score Inflation 总分
- Java设计模式之代码实现
- Linux下undefined reference to ‘pthread_create’问题解决接触了Linux系统编程中的线程编程模块,可gcc sample.c(习惯把书上的sample代码写
- 微信公众平台接入
- Selenium启动Chrome时,加载用户配置文件
- PHP面向对象1-重载overloading
- 对数据库中的123范式的理解
- 解决ldconfig 无法ld.so.Cache问题
- Spark2.x 快速入门教程 5
- 00Python简介及开发环境搭建
- Jquery 遍历数组之$().each方法与$.each()方法介绍
- QT中的一个常见问题
- 学习笔记——JAVA动态编译
- 使用Python的Requests包模拟登陆