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能支持如下语法:

<?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

  • 2011/07/13, 大草原 writes: 5.4。。。
  • 2011/07/15, solu writes: 现在5.3的应用都还没普及吧!
Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2)

Related Posts:

  • Zend引擎的优化
  • Plua进入Pecl
  • Zend Parameters Parser新增类型描述符介绍
  • 如何调试PHP的Core之获取基本信息
  • PLua – Lua for PHP
  • 在中国PHP技术高峰论坛(2011)上演讲的PPT
  • 深入理解PHP原理之Session Gc的一个小概率Notice
  • 一些PHP Coding Tips[2011/04/02最后更新]
  • PHP Reflection Extension的一个bug
  • 可序列化单例模式的遗留问题答案

你可能感兴趣的:(PHP,list,foreach,转载,PHP源码分析,PHP语法分析)