PHP 魔术方法的使用 ① __get/__set:将对象的属性进行接管 当访问一个不存在的对象属性时: index.php <?php define('BASEDIR',__DIR__); //定义根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('\\Common\\Loader::autoload'); $obj = new \Common\Object(); //在php中访问一个不存在的对象属性时 ech…
php设计模式笔记:单例模式 意图: 保证一个类仅有一个实例,并且提供一个全局访问点 单例模式有三个特点: 1.一个类只有一个实例2.它必须自行创建这个实例3.必须自行向整个系统提供这个实例 主要实现: Singleton定义了一个instance操作,允许外部访问它的唯一实例,instance是一个类方法,负责创建它的唯一实例. singleton适用场景: 1.当类只能有一个实例而且外部可以从一个公共的访问点访问它.2.当这个唯一实例应该是通过子类化可扩展的.并且用户应该无需更改代码就能使用…
SPL标准库的使用 SPL是用于解决典型问题(standard problems)的一组接口与类的集合. 1.SPL提供了很多数据结构类,如SplStack.SqlQueue.SqlHeap.SplFixedArray等 实例代码如下: a.栈 b.队列 c.定长数组 2.PHP链式操作的实现 index.php IMooc/Database.php 3.PHP魔术方法 a.__get\__set:对象属性的管理 index.php Object.php output : string(19)…
首先不要脸的放上个人网站:www.comingnext.cn 1.关于数据模型 在Python的官方文档中是这样说的: 对象是Python对数据的抽象.Python程序中所有数据都由对象或对象之间的关系表示.在某种意义上,为了和冯诺依曼存储程序计算机模型保持一致,代码和数据一样也是一个对象(冯诺依曼模型中提到,数据和程序都以0,1存储于存储器中) 简单的说,Python中的一切数据要么是对象,要么和对象有关系 如果你带着来自其他面向对象语言的经验进入 Python 的世界,会对 len(obje…
魔术方法总是被__包围, 如__init__ , __len__都是常见的魔术方法,这里主要写一下我遇到的一些魔术方法 setitem 对某个索引值赋值时 即可以进行赋值操作,如 def __setitem__(self, k, v): self.put(k, v) 在上述代码的情况下,可以执行p['key'] = value操作,即将key赋给k,value赋给v,执行put(k, v)函数.所以,__setitem__建立的前提,是要这个函数内的操作本来具有赋值的性质. getitem 使用…
继承: class p : cls_name = 'p' def __init__(self): print('正在实例化') def __del__(self): print('正在销毁') class cb(p): # 当前类继承()中类 pass c = cb() print(c) 重写: class p : cls_name = 'p' def __init__(self): print('正在实例化') def __del__(self): print('正在销毁') class cb…
python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分为这三个部分来讲解的 简单,功能性,一般不修改直接调用查看结果 实现简单功能,定义后使用 实现比较复杂功能,常常是一些我们常见类的特性的实现原理,具体分为 实例成为可迭代对象(列表的特性) 实例索引取值(列表的特性) 上下文管理(文件的特性)等 简单功能 这部分包括上面列出的前两个点 不需要修改直接…
一.魔术方法(13个)1.__construct()实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用.2.__destruct()当删除一个对象或对象操作终止时被调用.3.__call()对象调用某个方法, 若方法存在,则直接调用:若不存在,则会去调用__call函数.4.__get()读取一个对象的属性时,若属性存在,则直接返回属性值: 若不存在,则会调用__get函数.5.__set()设置一个对象的属性时, 若属…
PHP其它常用函数:     赋值:$r->name = "元素";      取值: echo $r->name;  count()   计算数组中的元素数目或对象中的属性个数  /  计算数组的长度 1.in_array(元素a,$attr)   判断元素a是否在数组$attr里面存在,存在返回一个true,反之false 2.array_reverse($attr)  将数组中的元素顺序翻转,创建新的数组并返回 3.array_unique($attr)   删除数组…
  前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象类与抽象方法 1.什么是抽象方法?              没有方法体 {} 的方法,必须使用abstract 关键字修饰.这样的方,我们叫做抽象方法.                    abstract function say(); //    抽象方法          2.什么是抽象类…