msgbartop
PHP语言, PHP扩展, Zend引擎相关的研究,技术,新闻分享 – 左手代码 右手诗
msgbarbottom

13 Jul 11 PHP RFC: 让PHP的foreach支持list

上个月, 终于算加入了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语言引擎学习的同学来说, 一定要注意.


分享到:



Related Posts:

Tags: , , , ,

8 Responses to “PHP RFC: 让PHP的foreach支持list”

  1. 关于PHP的编译和执行分离 | 午后小憩 |

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

  2. 关于PHP的编译和执行分离 | 5iphp |

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

  3. PHP RFC: 让PHP的foreach支持list树林/咖啡 成都专业php网站制作 | 树林/咖啡 成都专业php网站制作 |

    [...] 风雪之隅 » PHP源码分析 Posted in: php / Tagged: 让PHP的foreach支持list [...]

  4. funlake |

    恭喜候鸟大仙加入了pdt,有什么新进展别忘了给咱cn phper通报一下呀。

  5. 雪候鸟 |

    @Ruchee 诶, 你可以通过firebug看下具体到你的browser是什么字体 :)

  6. Ruchee |

    博主,你好

    请问本文那段源代码是用的什么字体?我很喜欢,望告知^-^

  7. solu |

    现在5.3的应用都还没普及吧!

  8. 大草原 |

    5.4。。。

Leave a Reply

*