PHP RFC: 让PHP的foreach支持list

标签: PHP源码分析 转载 foreach list PHP PHP语法分析 | 发表时间:2011-07-13 13:30 | 作者:雪候鸟 三马
出处:http://www.laruence.com

上个月, 终于算加入了PHP developer team, 一直以来最大的障碍就是语言, 现在想起来, 当年真应该更加认真努力的去学习英语.

得到的第一个任务是: 解决一个feature request, 请求在allow foreach($array as list($a,$b)

大意是说, 希望PHP能支持如下语法:

<?php
foreach (array(array(24,2333), array(31,4666)) as $k => list($a, $b)) {
    printf("key:%s, a=>%s, b=>%s\n", $k, $a, $b);
}
/** output:
key:0, a=>24, b=>2333
key:1, a=>31, b=>4666
*/

实现这个功能, 入手点就是去改写PHP的语法分析逻辑, 具体的实现我会再后面附上对PHP5.4的patch, 有兴趣的同学, 还可以参看我之前的一篇文章定制自己的PHP语法-在PHP中实现unless.

不过在后来的PHP 5.4要包含的新特性的投票中, 目前的情况是9赞成, 19反对, 看起来, 5.4中是不会包含这个特性了.

只能希望在下一次的大版本升级中加入了.

我就先把RFC和Patch放出来, 让对PHP语法分析这部分有兴趣的同学参考.

RFC: https://wiki.php.net/rfc/foreachlist

Patch for PHP5.4: http://www.laruence.com/php-dev/php-5.4.0svn-add-foreach-list-with-slient-support.patch

另外, 要说一下, 从PHP5.4开始, 语法分析这块的变化很大, 基本的数据结构都有很大的变化, 对于想从事PHP语言引擎学习的同学来说, 一定要注意.


Comments


Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2)

Related Posts:

相关 [php rfc php] 推荐:

PHP RFC: 让PHP的foreach支持list

- 三马 - 风雪之隅
本文地址: http://www.laruence.com/2011/07/13/2110.html. 上个月, 终于算加入了PHP developer team, 一直以来最大的障碍就是语言, 现在想起来, 当年真应该更加认真努力的去学习英语.. 得到的第一个任务是: 解决一个feature request, 请求在allow foreach($array as list($a,$b).

PHP导出excel

- syeye - scofield PHP开发-SEO SEM
最近做一个项目,其中涉及到了数据导成excel的功能. 后来使用了 开源的 PHPExcel  http://phpexcel.codeplex.com/ 目前最新版是1.7.6. PHPExcel 可以生成 .xls 和 .xlsx (office2007). 比如设置 excel的title,keywords,description.

PHP框架 Yaf

- Le - 开源中国社区最新软件
Yaf是一个C语言编写的PHP框架,Yaf 的特点: 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期, 提高内存利用率, 降低内存占用率. 支持全局和局部两种加载规则, 方便类库共享.

PHP开发宝典-PHP基础

- - CSDN博客推荐文章
.