php高级程序设计
文章平均质量分 86
风火程序员
你之所以会特别,是因为你愿意比别人付出更多的努力。
展开
-
用PHP迭代器来实现一个斐波纳契数列
斐波纳契数列通常做法是用递归实现,当然还有其它的方法。这里现学现卖,用PHP的迭代器来实现一个斐波纳契数列,几乎没有什么难度,只是把类里的next()方法重写了一次。注释已经写到代码中,也是相当好理解的。原创 2014-05-16 23:19:27 · 1323 阅读 · 0 评论 -
看看PHP迭代器的内部执行过程
下面我们来了解如何实现一个自定义的迭代器,然后再开始慢慢理解迭代器的内部工作原理。先来看一个官方的例子: <?php class myIterator implements Iterator { private $position = 0; private $array = array( "first_element", "second_element", "last_element", );原创 2014-05-16 23:29:40 · 4293 阅读 · 0 评论 -
PHP高级编程SPL
这几天,我在学习PHP语言中的SPL。 这个东西应该属于PHP中的高级内容,看上去很复杂,但是非常有用,所以我做了长篇笔记。不然记不住,以后要用的时候,还是要从头学起。 由于这是供自己参考的笔记,不是教程,所以写得比较简单,没有多解释。但是我想,如果你是一个熟练的PHP5程序员,应该足以看懂下面的材料,而且会发现它很有用。现在除此之外,网上根本没有任何深入的SPL中文介绍。原创 2014-05-16 22:53:04 · 2950 阅读 · 0 评论 -
PHP SPL被遗落的宝石
Rafael Dohms 上面的篇文章 让我为之惊艳,忍不住就翻译了下来,同时补充了部分内容。 SPL,PHP 标准库(Standard PHP Library) ,此从 PHP 5.0 起内置的组件和接口,并且从 PHP5.3 已逐渐的成熟。SPL 其实在所有的 PHP5 开发环境中被内置,同时无需任何设置。 似乎众多的 PHP 开发人员基本没有使用它,甚至闻所未闻。究其原因,可以追述到它那阳春白雪般的说明文档,使你忽略了「它的存在」。SPL 这块宝石犹如铁达尼的「海洋之心」般,被沉入海底。而现在它应原创 2014-05-17 00:15:56 · 1384 阅读 · 0 评论 -
数组在PHP内核中的实现
PHP中经常使用数组,PHP的数组强大,而且速度也快,读写都可以在O(1)内完成,因为它每个元素的大小都是一致的,只要知道下标,便可以瞬间计算出其对应的元素在内存中的位置,从而直接取出或者写入。那么内核中数组是如何实现的呢? PHP大部分功能,都是通过HashTable来实现,其中就包括数组。 HashTable即具有双向链表的优点,同时具有能与数据匹敌的操作性能。原创 2014-05-17 22:39:15 · 1907 阅读 · 0 评论 -
概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM
CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。 FastCGI FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布原创 2014-05-17 23:48:20 · 1056 阅读 · 0 评论 -
PHP中spl_autoload_register()和__autoload()区别分析
PHP中spl_autoload_register()和__autoload()区别分析原创 2015-04-19 21:01:26 · 1327 阅读 · 0 评论 -
php连贯操作实现
我们在使用一些框架(如ThinkPHP)编码的时候,常用到这样的代码。 M('User')->where(array('id'=>1))->field('name')->select(); 这样不仅有利于编码,而且也能让人"心情愉悦"呢。好了,不多说了。让我们看看如何实现的吧?原创 2015-04-19 21:10:00 · 2112 阅读 · 0 评论