- 本文地址: https://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语言引擎学习的同学来说, 一定要注意.
[…] PHP RFC: 让PHP的foreach支持list Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2) […]
[…] PHP RFC: 让PHP的foreach支持list Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2) […]
[…] 风雪之隅 » PHP源码分析 Posted in: php / Tagged: 让PHP的foreach支持list […]
恭喜候鸟大仙加入了pdt,有什么新进展别忘了给咱cn phper通报一下呀。
@Ruchee 诶, 你可以通过firebug看下具体到你的browser是什么字体 🙂
博主,你好
请问本文那段源代码是用的什么字体?我很喜欢,望告知^-^
现在5.3的应用都还没普及吧!
5.4。。。