2016年12月24日

策略模式

摘要: 定义:将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,使用策略模式可以实现Ioc,依赖倒置、控制反转实际应用举例:假如一个电商网站系统,针对男性女性的用户要各自跳转到不同商品类目,并且所有广告位展示不同的广告(分支逻辑)class Page{ protected $strategy; function index() { echo "AD:"; ... 阅读全文

posted @ 2016-12-24 22:12 果然朝辉 阅读(105) 评论(0) 推荐(0) 编辑

数据对象映射模式

摘要: 定义:将对象和数据存储映射起来,对一个对象的操作会映射为数据存储的操作综合应用实例:在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作,结合使用数据对象映射模式,工程模式,注册模式$page = new Page();$page->index();class Page{ function index() { $user = \IM... 阅读全文

posted @ 2016-12-24 22:12 果然朝辉 阅读(159) 评论(0) 推荐(0) 编辑

观察者模式

摘要: 定义:当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新,实现低耦合,非侵入式的通知与更新机制场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增加之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体的代码$event = new Event();$event->addObserver(new ... 阅读全文

posted @ 2016-12-24 22:12 果然朝辉 阅读(137) 评论(0) 推荐(0) 编辑

php链式操作的实现

摘要: 在每个函数实现业务逻辑后,使用return $this;where("id=1")->where("name=2")->order("id desc")->limit(10);//$db->where("id=1");//$db->where("name=2");//$db->order("id desc");//$db->limit(10);来自为知笔记(Wiz) 阅读全文

posted @ 2016-12-24 22:11 果然朝辉 阅读(102) 评论(0) 推荐(0) 编辑

PHP魔法方法的使用

摘要: 1.__get / __set当类没有要存取的属性时,就调用这两个函数$obj = new IMooc\Object();$obj->title = "hello";echo $obj->title;array[$key] = $value; } function __get($key) { var_dump(__METHOD__); return $... 阅读全文

posted @ 2016-12-24 22:11 果然朝辉 阅读(304) 评论(0) 推荐(0) 编辑

工厂模式

摘要: 定义:用工厂的方法或类生成对象,而不是在代码中直接new好处:当对象的名称或对象的参数改变时,只需在工厂的方法或者类一处修改即可$db = IMooc\Factory::createDatabase();<?phpnamespace IMooc;class Factory{ static function createDatabase() { $db = new Data... 阅读全文

posted @ 2016-12-24 22:11 果然朝辉 阅读(79) 评论(0) 推荐(0) 编辑

单例模式

摘要: 定义:使某个类的对象仅允许创建一个实例好处:节约资源$db = IMooc\Database::getInstance();<?phpnamespace IMooc;class Database{ protected $db; private function __construct() { } static function getInstance() { ... 阅读全文

posted @ 2016-12-24 22:11 果然朝辉 阅读(102) 评论(0) 推荐(0) 编辑

命名空间与Autoload

摘要: 命名空间是为了防止函数名冲突当php编译器找到未定义类时,就会自动去调用__autoload($class)这个函数,$class就代表这个未定义的类名相对于当前项目根目录所在路径 php5.3之后使用spl_autoload_register()代替__autoload() 来自为知笔记(Wiz) 阅读全文

posted @ 2016-12-24 22:10 果然朝辉 阅读(191) 评论(0) 推荐(0) 编辑

SPL标准库-数据结构

摘要: 数据结构:栈$stack = new SplStack();$stack->push("data1\n");$stack->push("data2\n");echo $stack->pop();echo $stack->pop();数据结构:队列$queue = new SplQueue();$queue->enqueue("data1\n");$queue->enqueue("data2\n")... 阅读全文

posted @ 2016-12-24 22:10 果然朝辉 阅读(199) 评论(0) 推荐(0) 编辑

类型

摘要: PHP 支持 8 种原始数据类型。 标量类型:boolean(布尔型)当转换为 boolean 时,以下值被认为是 FALSE: ◦ 布尔值 FALSE 本身 ◦ 整型值 0(零) ◦ 浮点型值 0.0(零) ◦ 空字符串,以及字符串 "0" ◦ 不包括任何元素的数组 ◦ 不包括任何成员变量的对象(仅 PHP 4.0 适用) ◦ 特殊类型 NULL(包括尚未赋值的变量) ◦... 阅读全文

posted @ 2016-12-24 22:09 果然朝辉 阅读(193) 评论(0) 推荐(0) 编辑

变量

摘要: 静态变量 如果在声明中用表达式的结果对静态变量赋值会导致解析错误。全局和静态变量的引用 在一个函数域内部用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用。 引用并不是静态地存储的HTML 表单(GET 和 POST) 变量名中的点和空格被转换成下划线。例如 变成了$_REQUEST["a_b"]。 HTTP Coo... 阅读全文

posted @ 2016-12-24 22:06 果然朝辉 阅读(152) 评论(0) 推荐(0) 编辑

xml和json格式输出

摘要: <?php class Response{ const JSON ='json'; /* * 按综合方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * @param s 阅读全文

posted @ 2016-12-24 22:05 果然朝辉 阅读(770) 评论(0) 推荐(0) 编辑

基数排序

摘要: 算法分析 【1】时间复杂度为O(d(n+r))【d代表关键字有d位,n代表n个记录,r代表r个空队列】 【2】辅助空间复杂度S(n) = O(n+r)【n代表n个记录,r代表r个空队列】,是一个就地排序 【3】基数排序是稳定的排序方法 来自为知笔记(Wiz) 阅读全文

posted @ 2016-12-24 22:03 果然朝辉 阅读(225) 评论(0) 推荐(0) 编辑

归并排序

摘要: 基本思想:将有序的子序列进行归并,从而得到有序的序列。 来自为知笔记(Wiz) 阅读全文

posted @ 2016-12-24 22:01 果然朝辉 阅读(129) 评论(0) 推荐(0) 编辑

选择排序

摘要: 基本思想:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。直接选择排序1.基本思想2.算法分析 堆排序 1.堆的定义2.大根堆和小根堆3.堆排序与直接插入排序的区别 4.基本思想 调整堆符合堆的性质算法 建成初始堆 5.算法分析 【1】时间复杂度为O(nlog2^n) 【2】辅助空间复杂度S(n) = O(1),是一个就地排序 【... 阅读全文

posted @ 2016-12-24 21:59 果然朝辉 阅读(211) 评论(0) 推荐(0) 编辑

导航