Array dereferencing support 这个可是个好东西,有了Array dereferencing,以前的这种写法就再也不必要了: <?php list($name,) = explode(",", "Laruence, male"); ?> 取而代之的是: $name = explode(",", "Laruence,male")[0]; 另外,据Cataphrac介绍,Array derefencing也可以出现再赋值语句的左值中,也就是理论上你可以这么写: explode(",", "Laruence, male")[3] = "phper"; 但也许有朋友会问这个有什么意义么? 呵呵,当时我也对Cataphrac提出了这样的疑问,不过后来了解到,还是有一些场景可以用到的,比如你先需要调用一个函数做初步处理,然后对处理结果进行调整: <?php function &ref(&$arr) { return $arr; } $arr = array(1,2,3); ref($arr)[4] = 4; var_dump($arr); ?> DTrace是一个性能分析工具,可以跟踪出函数调用点,返回点等数据,对于这个我也不是很了解,感兴趣的同学可以参看PHP 5.3.99-DEV AND DTRACE PART I PHP5.4还新增了一个SAPI,这个SAPI将支持直接把PHP当做Websever使用。这对php初学者来说的好消息,那就是php 5.4会包含一个简单的server,大家不用再去烦恼如何配置apache之类的了。 $ php -S localhost:8000 test.php //output: PHP Development Server is listening on localhost:8000 in foo/ 。。。 Press Ctrl-C to quit。 这个特性真的很让我兴奋,因为在差不多半个月以前,我就和我的几个同事探讨过,是否可以做一个类似东西,来减少Webserver这一层。 不过,和philip沟通得知,这个新的SAPI,错过了alpha1版本,应该会在下个测试版,和最终版中放出来,也不支持直接patch到php5.4以前的版本(这个比较悲剧,如果要用,看来只能自己折腾了)。有关PHP Webserver SAPI的更多信息,可以参看:webserver sapi
当然此Web Server只能用于开发时使用,用于生产环境万万不行,性能不行,安全性不行。 具体特性,参见手册:http://php.net/manual/en/features.commandline.webserver.php 另一个我比较关心的特性是php 5.4中终于支持全类型的函数类型检测了,在php 5.3以前我们只能在类型检测中使用 function foo(array input, MyClass key) { 但是php 5.4会支持现在php的所有内置类型了( 还有一个让无数php开发者曾经无比纠结的问题,终于在这个php 5.4中修复了(至少我认为是修复)。那就是在函数的返回值中直接使用数组键值了 function func () { 这个看似理所当然的东西居然要等到php 5.4中才修复,要是早点修复可以节省多少变量,少排放多少二氧化碳啊。 我所期待的特性php在我眼里离一个完美的语言还相差甚远,但幸好他是一个相当趁手的语言。所以我对它也有我的期待,那就是 增加对服务端持久化的支持,虽然有apc cache之类的东西,但是没有语言级的解决,还是感觉到不方便。 这里有一些老外对php的期许http://www.reddit.com/r/PHP/comments/...,你们自己希望有那些新特性呢? |