随笔分类 - PHP
摘要:模型:WeChat(回复参考weiphp)find($mid); } /** * 处理来自微信服务器的消息 * @param $callback * @access public * @return void */ static public...
阅读全文
摘要:面向对象的三大基本特性是:封装、继承、多态 。1.封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是 面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象...
阅读全文
摘要:工厂模式(FactoryDesign Pattern)作为一种创建型设计模式, 遵循了开放-封闭原则, 对修改封闭, 对扩展开放. 工厂方法(Factory Method)模式就是要创建"某种东西". 对于工厂方法模式, 要创建的"东西"是一个产品,这个产品与创建它的类之间不存在绑定.实际上,...
阅读全文
摘要:今天碰到一个比较有意思的问题, 就是把A到Y这25个字母以下面的形式输出出来ABCDEPQRSFOXYTGNWVUHMLKJI问题很有意思,就是转圈圈把字母填到表格中,要输出这样的格式,其实就需要构造一个下面这样的表格12345161718186152425207142322218131211109...
阅读全文
摘要:Session即会话,批一种持续性的、双向的链接。Sesstion和Cookie本质上没有什么区别,都是针对HTTP协议的局限性而提出的一种保持客户端和服务器间保持会话连接状态的机制。 Session的实现可以有多种,如URL重写、Cookie,通过在Cookie中存储sessionID实...
阅读全文
摘要:Cookie的基本概念和设置Cookie在远程浏览器端存储数据并以此跟踪和识别用户的机制。从实现上说,Cookie是存储在客户端上的小段数据,浏览器(即客户端)通过HTTP协议和服务器端进行Cookie交互。 注意 这里说的是客户端而不是浏览器,实际能管理Cookie的不仅仅是浏览器,当然最常见的...
阅读全文
摘要:上传文件和POST非常相似,都是通过表单采取POST方法提交的。先新建一个接收文件的页面upload.php:var_dump($_POST);var_dump($_FILES);再建立一个发送文件的test.php$post_data = array( 'name' => 'chenqion...
阅读全文
摘要:防止垃圾评论与机器人的攻击手段如下:1)IP限制。其原理在于IP难以伪造。即使是对于拨号用户,虽然IP可变,但这也会大大增加共攻击的工作量。2)验证码。其重点是让验证码难于识别,对于“字母+数字”的验证码,关键在于形变与重叠,增加其破解中切割和字模比对的难度,人眼尚且难以辨识,机器就更难处理了,再者...
阅读全文
摘要:要设计一留言本,一切都将以留言本为核心,抓到什么是什么,按流程走下来,即按用户填写信息->留言->展示的流程进行。现在用面向对象的思维思考这个问题,在面向对象的世界,会想尽办法把肉眼能看见的以及看不见的,但是实际存在的物或者流程抽象出来。既然是留言本,那么就存在留言内容这个实体,这个留言实体(dom...
阅读全文
摘要:什么是依赖倒置呢?简单地讲就是将依赖关系倒置为依赖接口,具体概念如下:1.上层模块不应该依赖于下层模块,它们共同依赖于一个抽象(父类不能依赖子类,它们都要依赖于抽象类)2.抽象不能依赖于具体,具体应该要依赖于抽象。注意,这里的接口不是狭义的接口。为什么要依赖接口?因为接口体现对问题的抽象,同时由于抽...
阅读全文
摘要:替换原则由MIT计算机科学实验室的Liskov女士在1987年的OOPSLA大会上的一篇文章中提出,主要阐述有关继承的一些原则,故称里氏替换原则。2002年,Robert C.Martin出版了一本名为《Agile Software Development Principles Patterns a...
阅读全文
摘要:1.什么是“开放-封闭”随着软件系统规模的不断增大,软件系统的维护和修改的复杂性不断提高,这种困境促使法国工程院士Bertrand Meyer在1998年提出了“开放-封闭”(Open-Close Principle,OCP)原则,这条原则的基本思想是:Open(Open for extendtio...
阅读全文
摘要:设计应用程序的时候,如果一个模块包含多个子模块,那么我们应该小心对模块做出抽象。设想该模块由一个类实现,我们可以把系统抽象成一个接口。但是要添加一个新的模块扩展程序时,如果要添加的模块只包含原系统中的一些子模块,那么系统就会强迫我们实现接口中的所有方法,并且清寒要编写一些哑方法。这样的接口被称为肚胖...
阅读全文
摘要:单一职责原则(Single Pesponsibility Principle, SRP)单一职责有两个含义: 一个是避免相同的职责分散到不同的类中, 别一个是避免一个类承担太多职责为什么要遵守SRP呢?(1)可以减少类之间的耦合如果减少类之间的耦合,当需求变化时,只修改一个类,从而也就隔离了变化;如...
阅读全文
摘要:PHP里有一套错误处理机制,可以使用set_error_handler接管PHP错误处理,也可以使用trigger_error函数主动抛出一个错误。set_error_handler()函数设置用户自定义的错误处理函数。函数用于创建运行期间的用户自己的错误处理方法。它需要先创建一个错误处理函数,然后...
阅读全文
摘要:接口是对多重继承的一种变相实现, Traits可以被视为一种加强型的接口.先来看如下代码trait Hello{ private $name = 'chenqionghe'; public function sayHello() { echo 'hello '; ...
阅读全文
摘要:其中就有一个SPL(标准PHP库)的尝试,SPL中实现一些接口,其中最主要的就是Iterator迭代器接口,通过实现这个接口,就能使对象能够用于foreach结构,从而在使用形式上比较统一.比如SPL中有一个DirectoryIterator类,这个类在继承SplFileInfo类的同时,实现Ite...
阅读全文
摘要:多态的确切含义是: 同一类对象收到相同消息时,会得到不同的结果。而这个消息是不可预测的。多态,顾名思义,就是多种状态,多种结果。以java为例,由于java是强类型语言,因此变量和函数返回值是有状态的。比如,实现一个add函数的功能,其参数可能是两个int型整数,也可能是两个float型浮点数,而返...
阅读全文
摘要:面向对象的优势在于类的复用.继承与多态都是对类进行复用,它们是一个类级别的复用,一个是方法级别的复用.提到继承必提组合,二者有何异同?PHP到底有没有多态?若没有,则为什么没有?有的话,和其他语言中的多态又有什么区别?继承和组合都是提高代码可重用性的手段.在设计模型时,可以按照语言识别类之间的组合关...
阅读全文
摘要:如何防止调用不存在的方法而出错,使用__call魔术重载方法.__call方法原型如下:mixed __call(string $name,array $arguments)当调用一个不可访问的方法(如未定义,或者不可见时), __call()就会被调用.其中$name参数是要调用的方法名称.$ar...
阅读全文

浙公网安备 33010602011771号