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
上一篇:中断中处理延时及一些函数的调用规则(中断调i2c驱动有感)--中断中的延迟delay与printk函数的冲突【转】


下一篇:iOS开发之再探多线程编程:Grand Central Dispatch详解