PHP5.5特性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP5.5特性相关的知识,希望对你有一定的参考价值。

1.php生成器(使用yield关键字)

<?php

//使用yield关键字实现平方的生成器,在循环结构中则生成的是数组
function do2pos($n){
	for($i=1; $i<=$n; $i++){
		yield $i * $i;
	}
}

//在循环结构中使用yield返回的是Generator对象
var_dump(do2pos(100));

$sum = 0;
foreach(do2pos(100) as $v){
	$sum += $v;
}
echo $sum;

?>

 

2. 增加了finally关键字用于处理异常

<?php
try{

}catch(Exception $e){

}finally{
}
?>

 

3.循环结构中使用list()读取多个元素

<?php
ini_set("display_errors", 1);
error_reporting(E_ALL);

$arr = array(array(1,3,5), array(2,4,6), array(4,6,8), array(88,99,44,55), array(23,78));
foreach($arr as list($one, $two, $three)){
	echo PHP_EOL.$one.",".$two.",".$three;
}
?>

注意:

若数组内的数组元素个数少于list()声明的个数则报notice

 

4. empty()全局函数也支持参数为函数

<?php
function foo(){
	return false;
}

echo empty(foo());
?>

 

5.非变量array和string均支持使用下标获取元素

<?php
echo array(2,4,6)[2];
echo [2,4,6][2];
echo "abcde"[2];
?>

 

6.类名可以通过Clazz::class获取

<?php

namespace project\php;

class Clazz{}

echo Clazz::class;
?>

 

7.增加了opcache的php加速

opcache在php.ini中的配置如下:

[opcache]
zend_extension=php_opcache.dll

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=64
opcache.interned_strings_buffer=4
opcache.max_accelerated_files=2000
opcache.max_wasted_percentage=5
opcache.use_cwd=1
opcache.validate_timestamps=1
opcache.revalidate_freq=2
opcache.revalidate_path=0
opcache.save_comments=1
opcache.load_comments=1
opcache.fast_shutdown=0
opcache.enable_file_override=0
opcache.optimization_level=0xffffffff
opcache.inherited_hack=1
opcache.dups_fix=0
opcache.blacklist_filename=
opcache.max_file_size=0
opcache.consistency_checks=0
opcache.force_restart_timeout=180
;opcache.error_log=
opcache.log_verbosity_level=1
opcache.preferred_memory_model=
opcache.protect_memory=0
opcache.validate_permission=0
opcache.validate_root=0

 

以上是关于PHP5.5特性的主要内容,如果未能解决你的问题,请参考以下文章

PHP5各个版本的新功能和新特性总结

PHP 生成器入门

php5-sqlite 啥也没显示

PHP5.5+启用OPCache

js代码片段

译ECMAScript 2016, 2017, 2018 新特性之必读篇