<?php
/*
* 1.empty增强了
* */
function ey() {
return FALSE;
}
var_dump(empty(ey()));
echo '<br/>';
/*
*2.yield生成器
* 一个生成器函数看起来像一个普通的函数,不同的是普通函数返回一个值,而一个生成器可以yield生成许多它所需要的值。
当一个生成器被调用的时候,它返回一个可以被遍历的对象.当你遍历这个对象的时候(例如通过一个foreach循环),
* PHP 将会在每次需要值的时候调用生成器函数,并在产生一个值之后保存生成器的状态,这样它就可以在需要产生下一个值的时候恢复调用状态。
一旦不再需要产生更多的值,生成器函数可以简单退出,而调用生成器的代码还可以继续执行,就像一个数组已经被遍历完了。
* */
function getAll() {
for ($i = 1; $i < 7; ++$i) {
//注意变量$i的值在不同的yield之间是保持传递的。
yield $i;
}
}
foreach(getAll() as $v){
echo $v,'<br/>';
}
/*
* 3.非变量array和string也能支持下标获取了
* */
echo [1, 2, 3][0],'<br/>';;
echo 'foobar'[2],'<br/>';
/*
* 4.类名通过::class可以获取
* */
class ClassName {
}
echo ClassName::class,'<br/>';
/*
* 5.foreach 支持list()
* */
$array = [
[1, 2],
[3, 4]
];
foreach ($array as list($a, $b)) {
echo 'A:'.$a,'<br/>';
echo 'B:'.$b,'<br/>';
}
/*
* 6. finally关键字
* 这个和java中的finally一样,经典的try ... catch ... finally 三段式异常处理。
* 小结:在使用 finally 并return时,请谨慎使用,因为 finally 的return会覆盖之前的ruturn值。
* */
try {
//执行操作
} catch (Exception $e) {
// 捕捉异常,记录日志或其他的操作
echo $e->getMessage();
} finally {
// 插入出错后继续执行的代码,如关闭数据库连接,返回给客户端错误信息等。 …………………………
}
/*
* php5.5总结
* 不再支持Windows XP和 Windows Server 2003
* 扩展mysql过期,需使用MySQLi或PDO_MySQL
* preg_replace /e 修饰符过期
* 删除Logo GUIDs
* intl扩展的一些方法/函数过期
* IntlDateFormatter::setTimeZoneID()和datefmt_set_timezone_id()现在已经过期.可以分别使用IntlDateFormatter::setTimeZone()和datefmt_set_timezone()
* mcrypt扩展的一些函数过期
* mcrypt_cbc(),mcrypt_cfb(),mcrypt_ecb(),mcrypt_ofb()等函数过期linux
*
* */
php5.5新特性
最新推荐文章于 2021-03-24 20:09:38 发布