PHP5.5中新增的参数跳跃和生成器功能介绍
生成器 ?
目前,自定義迭代器很少使用,因?yàn)樗鼈兊膶?shí)現(xiàn),需要大量的樣板代碼。生成器解決這個(gè)問題,并提供了一種簡單的樣板代碼來創(chuàng)建迭代器。?
例如,你可以定義一個(gè)范圍函數(shù)作為迭代器:?
<?php
function *xrange($start, $end, $step = 1) {
??? for ($i = $start; $i < $end; $i += $step) {
??????? yield $i;
??? }
}
foreach (xrange(10, 20) as $i) {
??? // ...
}
上述xrange函數(shù)具有與內(nèi)建函數(shù)相同的行為,但有一點(diǎn)區(qū)別:不是返回一個(gè)PHP數(shù)組的所有值,而是返回一個(gè)迭代器動(dòng)態(tài)生成的值。?
參數(shù)跳躍 ?
如果你有一個(gè)函數(shù)接受多個(gè)可選的參數(shù),目前沒有辦法只改變最后一個(gè)參數(shù),而讓其他所有參數(shù)為默認(rèn)值。
RFC 上的例子,如果你有一個(gè)函數(shù)如下:?
function create_query($where, $order_by, $join_type='', $execute = false, $report_errors = true) { ... }
那么有沒有辦法設(shè)置$report_errors=false,而其他兩個(gè)為默認(rèn)值。為了解決這個(gè)跳躍參數(shù)的問題而提出:?
create_query("deleted=0", "name", default, default, false);
我個(gè)人不是特別喜歡這個(gè)提議。在我的眼睛里,代碼需要這個(gè)功能,只是設(shè)計(jì)不當(dāng)。函數(shù)不應(yīng)該有12個(gè)可選參數(shù)。
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/ctou45/archive/2013/01/07/2849129.html
總結(jié)
以上是生活随笔為你收集整理的PHP5.5中新增的参数跳跃和生成器功能介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: APL开发日志--2013-01-17
- 下一篇: 动态规划算法php,php算法学习之动态