PHP生成器简单实例


一般你在迭代一组数据的时候,需要创建一个数据,假设数组很大,则会消耗很大性能,甚至造成内存不足。

//Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in E:phptestindex.php on line 5

range(1, 100000000);

PHP5.5实现了生成器,每当产生一个数组元素则用yield关键词返回,并且执行函数暂停,当执行函数next方法时,则会从上一次被yield的位置开始继续执行,如下例子,只会产生中间变量$i

function xrange($start, $limit, $step = 1) {

    for ($i = $start; $i <= $limit; $i += $step) {

        yield $i;

    }

}

 

foreach (xrange(1, 9, 1) as $number) {

    echo "$number ";

}

PHP file_get_contents函数读取远程数据超时的解决方法
在网络状况比较差的情况下file_get_contents函数经常读取远程数据失败。解决办法如下:/*设置超时配合失败之后尝试多次读取,效果比原先好很多*/$url='ht

简单解决新浪SAE无法上传文件的问题
今天给网站后台增加一个上传文件的功能,结果出现BUG,提示未选择上传文件。以下是代码部分。formmethod="post"action="attached.phpaction=upload_post"enctype="multip

PHP中的traits简单使用实例
PHP5.4中的traits,是新引入的特性,中文还真不知道如何准确翻译好。其实际的目的,是为了有的场合想用多继承,但PHP又没多继承,于是就发明了这样