一、重载性能
1、属性和方法的重载
php 允许通过实现特殊的代理方法对属性的访问和方法的调用进行重载,这些代理方法将在相关的属性或者方法不存在时调用。这种特性让你在中端这些动作并定义你自己的功能时获得巨大的灵活性。
你可以实现下面的方法原型:
function __get($property) // 传递属性的名字,并且返回属性值
function __set($property, $value) // 传递属性的名字和新的值
function __call($method, $args) // 传递方法的名字和一个数字索引的数组,数字包含传递的参数,第一个参数的索引是0。
class Users {
private $arr = array();
function __get($name) {
return $this->arr[$name] === NULL ? 'null' : $this->arr[$name];
}
function __set($name, $value) {
$this->arr[$name] = $value;
}
}
$user = new Users();
$user->a = 'xiezheng';
print $user->a;
__call()具有很多用途,它主要用来监控一个对象中的其他方法。如果你试着调用一个对象中不存在的方法,__call方法将会被自动调用。
class HelloWorld {
function display($count) {
for($i=0; $i<$count; $i++)
print __CLASS__.'<br />';
return $count;
}
}
class HelloWorldCall {
private $obj;
function __construct() {
$this->obj = new HelloWorld();
}
function __call($method, $args) {
return call_user_func_array(array($this->obj, $method), $args);
}
}
$hwc = new HelloWorldCall();
print $hwc->display(3);
2、使用数组语句访问的重载。
为了让你的类能够重载数组语句的访问,你的类需要实现ArrayAccess接口。
bool offsetExists($index)
mined offsetGet($index)
void offsetSet($index, $new_value)
void offsetUnset($index)
以上是ArrayAccess需要实现的方法。
class Users implements ArrayAccess {
private $uname;
function offsetExists($name) {
return $this->uname === NULL;
}
function offsetGet($name) {
return $this->offsetExists($this->uname) ? 'NULL' : $this->uname;
}
function offsetSet($name, $value) {
$this->uname = $value;
}
function offsetUnset($name) {
$this->uname = null;
}
}
$user = new Users();
$user['name'] = 'xiezheng';
// unset($user['name']);
print $user['name'];
分享到:
相关推荐
PHP个人学习笔记
【标题】:“当年我学PHP时整理的学习笔记” 这篇学习笔记是作者在学习PHP编程语言的过程中逐步积累并整理的,涵盖了初学者从基础到进阶的一些关键知识点。PHP是一种广泛应用于网页开发的服务器端脚本语言,尤其在...
### PHP学习笔记与实例解析 #### 第一章:PHP高级语法与功能 ##### PHP的`date()`函数 `date()`函数是PHP中用于格式化日期和时间的强大工具。它可以将Unix时间戳转换成人类可读的日期和时间格式。这个函数有两个...
PHP框架学习笔记 PHP框架学习笔记是学习PHP框架的重要笔记,涵盖了CI框架的基本概念、控制器、模型、视图、URI路由、数据库操作、表单提交、上传文件、Session管理等方面的知识点。 CI框架的业务流程是从域名或...
根据提供的“php100学习笔记”的部分内容,我们可以总结出一系列重要的PHP知识点,涉及字符串处理、文件操作、类与对象的基础等内容。 ### 字符串处理 #### `str_replace` `str_replace`函数用于在字符串中替换...
【PHP学习笔记】 在深入PHP之前,我们先回顾一下HTML的一些基础知识点。`<hr>`标签用于在HTML页面中创建一条水平线,起到分隔内容的作用。`target="_blank"`属性用于链接,当点击链接时会在新窗口打开目标页面。在...
### PHP基础学习笔记 #### 第一章:PHP + MySQL 基础入门 ##### Web 开发简介 在这一章节中,我们首先介绍了Web开发的基本概念及其工作原理。Web开发涉及创建和维护网站的过程,它包括前端开发(负责网站外观、...
该项目是一款基于Java的PHP日常学习笔记设计源码,包含22个文件,涵盖5个Markdown文档、3个文本文件、2个PHP脚本、1个Jenkins+Gitlab自动部署配置、1个Linux cat命令示例、1个Linux磁盘挂载教程、1个Linux运维指南、...
访问控制是面向对象编程中的关键概念,PHP5提供了三种访问修饰符:`public`、`private`和`protected`。`public`属性和方法可以在任何地方访问,`private`仅限于类的内部,而`protected`允许在类及其子类中访问。 ...
这篇"php基本语法学习笔记"将引导我们深入理解PHP的核心概念和基础语法。通过博主杨梦在ITEYE博客上分享的文章链接(https://yangmeng.iteye.com/blog/1969617),我们可以获得关于PHP编程的实用知识。 首先,PHP...
php的学习笔记,环境配置、开发基础、问题解决
标题:PHP学习笔记1 描述:本篇笔记旨在为初学者提供一个系统的学习路径,深入理解PHP编程语言的核心概念与实践技巧。通过本篇笔记,读者将能够掌握PHP的基础语法、变量、数据类型、控制结构、函数、面向对象编程、...
这份“php学习PPT教程笔记”是针对初学者设计的,旨在帮助新接触PHP的人们从基础开始,逐步掌握这一编程语言。 教程的第一部分可能涵盖了PHP的安装与配置。在Windows系统中,通常会使用XAMPP或WAMP这样的集成开发...
【PHP学习笔记】是作者四个月学习PHP过程中积累的个人笔记,主要涵盖了HTML基础、CSS基础以及PHP基础等核心内容。这些笔记对于初学者来说是非常有价值的资源,因为它们以小案例的形式展示了各种知识点,便于理解和...
以下是对PHP学习笔记内容的详细阐述: 1. PHP简介:PHP是由Rasmus Lerdorf于1995年创建的,起初是一个简单的Perl脚本,后来发展成一种功能丰富的Web开发工具。PHP是嵌入在HTML中的,可以生成动态网页内容,支持多种...
### 牛人的PHP学习总结笔记知识点详述 #### PHP概述 PHP,全称为"PHP:Hypertext Preprocessor",是一种开放源代码的多用途脚本语言,特别适用于Web开发,可嵌入到HTML中,与JavaScript(客户端)不同,PHP在服务端...
### PHP PDO 学习笔记详解 #### 一、PDO简介 PDO(PHP Data Objects)是PHP 5中引入的一个数据库访问扩展,在PHP 6中它将成为连接数据库的标准方式,并逐步取代旧有的数据库连接方法。PDO的主要目标是为PHP提供一...
这份"php学习笔记之重要知识点总结"涵盖了PHP与MySQL的基础,旨在为学习者提供一个全面的指南。下面,我们将深入探讨这些核心概念。 首先,让我们从PHP的基础开始。PHP是一种服务器端的脚本语言,主要用于Web开发,...
本学习笔记将详细介绍Smarty的核心概念、安装配置、基本用法以及一些高级特性。 1. Smarty核心概念: - 模板:HTML代码,其中包含特殊的SMARTY标记,用于插入动态数据。 - 配置文件:定义SMARTY的全局设置,如...