bsp;// direct dereference of string } } function randomBool() { return [false, true][mt_rand(0, 1)]; // direct dereference of array } 我不认为在实践中会使用此功能,但它使语言更加一致。请参阅 RFC。调用empty()函数(和其他表达式)一起工作目前,empty()语言构造只能用在变量,而不能在其他表达式。在特定的代码像empty($this->getFriends())将会抛出一个错误。作为PHP5.5 这将成为有效的代码。更多信息请参阅 RFC。获取完整类别名称 PHP5.3 中引入命名空间的别名类和命名空间短版本的功能。虽然这并不适用于字符串类名称:<?php use Some\Deeply\Nested\Namespace\FooBar; // does not work, because this will try to use the global `FooBar` class $reflection = new ReflectionClass(''FooBar''); 为了解决这个问题采用新的FooBar::class语法,它返回类的完整类别名称:<?php use Some\Deeply\Nested\Namespace\FooBar; // this works because FooBar::class is resolved to "Some\\Deeply\\Nested\\Namespace\\FooBar" $reflection = new ReflectionClass(FooBar::class); 更多示例请参阅 RFC。参数跳跃 如果你有一个函数接受多个可选的参数,目前没有办法只改变最后一个参数,而让其他所有参数为默认值。RFC上的例子,如果你有一个函数如下:function create_query($where, $order_by, $join_type='''', $execute = false, $report_errors = true) { ... } 那么有没有办法设置$report_errors=false,而其他两个为默认值。为了解决这个跳跃参数的问题而提出:create_query("deleted=0", "name", default, default, false); 我个人不是特别喜欢这个提议。在我的眼睛里,代码需要这个功能,只是设计不当。函数不应该有12个可选参数。标量类型提示 标量类型提示原本计划进入5.4,但由于缺乏共识而没有做。获取更多关于为什么标量类型提示没有做进PHP的信息,请参阅: 标量类型提示比你认为的更难。对于PHP5.5 而言,针对标量类型提示讨论又一次出现,我认为这是一个相当不错的 提议。它需要通过输入值来指定类型。例如:123,123.0,“123”都是一个有效的int参数输入,但“hello world”就不是。这与内部函数的行为一致。function foo(int $i) { ... } foo(1); // $i = 1 foo(1.0); // $i = 1 foo("1"); // $i = 1 foo("1abc"); // not yet clear, maybe $i = 1 with notice foo(1.5); // not yet clear, maybe $i = 1 with notice foo([]); // error foo("abc"); // error Getter 和 Setter 如果你从不喜欢写这些getXYZ()和setXYZ($value)方法,那么这应该是你