php5.2以上支持__tostring
如果我们想打印出一个对象,就需要调用__toString()这个魔术方法。如果不使用该方法,就会出现以下错误,Catchable fatal error: Object of class Test could not be converted to string
原因是对象不是字符串,主要用来处理日志和错误报告,也可用于设计专门用来传递信息的类,比如exception类关于异常信息写进tostring里,
如果我们想打印出一个对象,就需要调用__toString()这个魔术方法。如果不使用该方法,就会出现以下错误,Catchable fatal error: Object of class Test could not be converted to string
原因是对象不是字符串,主要用来处理日志和错误报告,也可用于设计专门用来传递信息的类,比如exception类关于异常信息写进tostring里,
__CLASS__ 返回的是调用它的函数所在的类名,而 get_class($this) 返回的是创建对象的类
查询mysql语句里嵌套了很多次,由于先前的同事并没关注性能的问题,导致数量一大,查询语句增加到上w次,便出现Allowed memory size of,有一种办法虽然治标不治本,但暂时度过难过,就是在查询时@ini_set(“memory_limit”,-1);或者直接修改php.ini的memory_limit
//获取和设置include_path
get_include_path
set_include_path
下面两个都是恢复include_path前者是需要php4.3以上版本
restore_include_path();
ini_restore(‘include_path’);
ini_set设置php.ini里设置的值,比如ini_set(‘include_path’,’htdocs’)
ini_get获取php.ini里设置的值
ini_get_all获取ini所有的数据,以数组形式展开
PATH_SEPARATOR 常量,在linux下是:在win下是;
include_path用在入口文件,设置后,它可以使我们调用文件时不用写绝对路径,直接require(‘aa.php’)即可
一个组件大多数情况下并不只是一个类,大多是一个对象继承链或者是一个对象树,我们使用这个组件并不关心这个链或树的代码,那么我们在框架中使用组件需要三部分:
1、组件,即为需要对象设立一个通用的接口或者基类。
2、需要一个或者多个叶子类,叶子类就是创建这个过程的简单的单体模块
3、至少需要一个高端类,也称为组合类,是一个组件,同时又是由子组件所构成的高端类。
观察者模式的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。观察者模式(Observer)完美的将观察者和被观察的对象分离开。
当我们在星际中开地图和几家电脑作战的时候,电脑的几个玩家相当于结盟,一旦我们出兵进攻某一家电脑,其余的电脑会出兵救援。那么如何让各家电脑知道自己的盟友被攻击了呢?并且自动做出反应?
待解决的问题:一旦某个电脑被我们进攻,其他电脑就获知,并且自动出兵救援。
思路:为电脑设置一些额外的观察系统,由他们去通知其他电脑
策略(Strategy)模式适用于你有一个可以用两个以上算法来解决的问题时候。解决方案的选择表现为用户做出的决定
这个模式也可以解决Web应用程序的多语言/风格表现问题