当前位置: 首页 > news >正文

关于域名用于非网站用途常州网站建设优化

关于域名用于非网站用途,常州网站建设优化,枣庄企业网站建设,网站建设平台推荐浅析 PHP 中的 Generator Miss Wang php开发案例 前天 何为 Generator 从 PHP 5.5 开始#xff0c;PHP 加入了一个新的特性#xff0c;那就是 Generator#xff0c;中文译为生成器。生成器可以简单地用来实现对象的迭代#xff0c;让我们先从官方的一个小例子说起。 xrange…  浅析 PHP 中的 Generator   Miss Wang php开发案例 前天   何为 Generator   从 PHP 5.5 开始PHP 加入了一个新的特性那就是 Generator中文译为生成器。生成器可以简单地用来实现对象的迭代让我们先从官方的一个小例子说起。   xrange   在 PHP 中我们都知道有一个函数叫做 range用来生成一个等差数列的数组然后我们可以用这个数组进行 foreach 的迭代。具体就想这样。   foreach (range(1, 100, 2) as $num) { echo {$num}\n;   }   这一段代码就会输出首项为 1末项为 100公差为 2 的等差数列。它的执行顺序是这样的。首先range(1, 100, 2) 会生成一个数组里面存了上面那样的一个等差数列之后在 foreach 中对这个数组进行迭代。   那么这样就会出现一个问题如果我要生成 100 万个数字呢那我们就要占用上百兆内存。虽然现在内存很便宜但是我们也不能这么浪费内存嘛。那么这时我们的生成器就可以排上用场了。考虑下面的代码。   function xrange($start, $limit, $step 1) { yield $start;   $start;   }foreach (xrange(1, 100, 2) as $num) { echo {$num}\n;   }   这段代码所的出来的结果和前面的那段代码一模一样但是它内部的原理是天翻地覆了。   我们刚才说了前面的代码range 会生成一个数组然后 foreach 来迭代这个数组从而取出某一个值。但是这段代码呢我们重新定义了一个 xrange 函数在函数中我们用了一个关键字 yield。我们都知道定义一个函数希望它返回一个值得时候用 return 来返回。那么这个 yield 呢也可以返回一个值但是它和 return 是截然不同的。   使用 yield 关键字可以让函数在运行的时候中断同时会保存整个函数的上下文返回一个 Generator 类型的对象。在执行对象的 next 方法时会重新加载中断时的上下文继续运行直到出现下一个 yield 为止如果后面没有再出现 yield那么就认为整个生成器结束了。   这样我们上面的函数调用可以等价地写成这样。   $nums xrange(1, 100, 2);while ($nums-valid()) { echo $nums-current() . \n;   $nums-next();   }   在这里$num 是一个 Generator 的对象。我们在这里看到三个方法valid、current 和 next。当我们函数执行完了后面没有 yield 中断了那么我们在 xrange 函数就执行完了那么 valid 方法就会变成 false。而 current 呢会返回当前 yield 后面的值这是生成器的函数会中断。那么在调用 next 方法之后函数会继续执行直到下一个 yield 出现或者函数结束。   好了到这里我们看到了通过 yield 来“生成”一个值并返回。其实yield 其实也可以这么写 $ret yield;。同返回值一样这里是将一个值在继续执行函数的时候传值进函数可以通过 Generator::send($value) 来使用。例如。   function sum(){   $ret yield; echo {$ret}\n;   }   $sum sum();   $sum-send(I am from outside.);   这样程序就会打印出 send 方法传进去的字符串了。在 yield 的两边可以同时有调用。   function xrange($start, $limit, $step 1) {   $ret yield $start;   $start; echo {$ret}\n;   }   而像这样的使用send() 可以返回下一个 yield 的返回。   其它的 Generator 方法   Generator::key()   对于 yield我们可以这样使用 yield $id $value这是我们可以通过 key 方法来获取 $id而 current 方法返回的是 $value。   Generator::rewind()   这个方法可以帮我们让生成器重新开始执行并保存上下文同时呢会返回第一个 yield 返回的内容。在第一次执行 send 方法的时候rewind 会被隐式调用。   Generator::throw()   这个方法向生成器中抛送一个异常。   后记   yield 作为 PHP 5.5 的新特性让我们用了新的方法来高效地迭代数据。同时我们还可以使用 yield 来实现协程。转载于:https://www.cnblogs.com/yyuyu/p/10003973.html
http://www.zqtcl.cn/news/79218/

相关文章:

  • 广州市手机网站建设平台vi设计论文
  • 营销型网站建设哪家便宜网站建设毕业设计文献综述
  • 做淘客网站怎么样杭州优化外包
  • 网站的优化与推广分析设计类公司简介网页
  • 广告网站建设实训报告网站多ip 建设
  • h5游戏是什么意思成都专业网站建设优化团队
  • 金融网站 改版方案怎么做关注网站
  • 怎么简单做网站排名wordpress分享到 滑动
  • 福建做网站公司排名企业网站建设注意事项
  • 个人注什么域名的网站长春网站制作网络推广
  • 长沙做网站团队wordpress tag链接优化
  • 免飞网站wordpress取消邮件验证码
  • 描述建设一个网站的具体步骤互联网创业有哪些项目
  • 网站建设的学习重庆关键词seo排名
  • 做个网站多少钱一年wordpress 回复提醒
  • 物流网站前端模板下载新项目开发流程
  • 建个门户网站网络广告营销的典型案例有哪些
  • 站长工具国产2022四川省信用建设促进会网站
  • 唐山网站建设哪家专业关于怎么做网站
  • 分类型网站建设网站打开文件按钮怎么做
  • 贷款超市网站开发网站建设合同属于印花税的哪个税目
  • 手机版网站模板下载地址园区网互联及网站建设
  • 国外网站建设简单网站建设
  • 西安做网站微信公司Wordpress必备chaj
  • 盘锦建设工程信息网站广州的一起做网站怎么样
  • 网站对公司的作用是什么意思网站建设app销售好做吗
  • 刷网站seo排名软件平台app
  • 网站建设好的马尾福州网站建设
  • 在c盘做网站可以吗wordpress html5 视频播放
  • 青岛市黄岛区网站建设广州做商城网站