最受欢迎的改变。提议添加一个新的语法来定义一个属性的设置/读取:<?php class TimePeriod { public $seconds; public $hours { get { return $this->seconds / 3600; } set { $this->seconds = $value * 3600; } } } $timePeriod = new TimePeriod; $timePeriod->hours = 10; var_dump($timePeriod->seconds); // int(36000) var_dump($timePeriod->hours); // int(10) 当然还有更多的功能,比如只读属性。如果你想要知道更多,请参阅 RFC。生成器 目前,自定义迭代器很少使用,因为它们的实现,需要大量的样板代码。生成器解决这个问题,并提供了一种简单的样板代码来创建迭代器。例如,你可以定义一个范围函数作为迭代器:<?php function *xrange($start, $end, $step = 1) { for ($i = $start; $i < $end; $i += $step) { yield $i; } } foreach (xrange(10, 20) as $i) { // ... } 上述xrange函数具有与内建函数相同的行为,但有一点区别:不是返回一个数组的所有值,而是返回一个迭代器动态生成的值。获取更深入的介绍请参阅 RFC。列表解析和生成器表达式 列表解析提供一个简单的方法对数组进行小规模操作:$firstNames = [foreach ($users as $user) yield $user->firstName]; 上述列表解析相等于下面的代码:$firstNames = []; foreach ($users as $user) { $firstNames[] = $user->firstName; } 也可以这样过滤数组:$underageUsers = [foreach ($users as $user) if ($user->age < 18) yield $user]; 生成器表达式也很类似,但是返回一个迭代器(用于动态生成值)而不是一个数组。获取更多的例子请查看 邮件列表中的公告。结束语 正如你所看到的,有很多很棒的新特征将加入到PHP5.5。不过,正如我所说的,PHP5.5还在早期的开发阶段,因此我们不确定上述新特征是否都能加入。如果你想保持新特性更新,或者想要帮助我们讨论或开发,请订阅我们的 内部邮件列表。原文链接:http://www.oschina.net/question/157182_61259