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特性的更多相关文章
- php框架的特性总结
今天面试问到了php框架的特性,特此在这汇总一下,方便以后查看. Thinkphp 3.2特性: 1.多表查询非常方便,在model 里几句代码就可以完成完成多表的关联操作. 2.融合了smarty ...
- [tp3.2.1]查询(2)
<?php namespace Home\Controller; use Think\Controller; use Think\Model; class QueryController ext ...
- 主流PHP框架间的比较(Zend Framework,CakePHP,CodeIgniter,Symfony,ThinkPHP,FleaPHP)
Zend Framework 优点: Zend Framework大量应用了PHP5中面向对象的新特征:接口.异常.抽象类.SPL等等.这些东西的应用让Zend Framework具有高度的模块化和灵 ...
- Laravel和thinkphp的区别/优缺点
Laravel的设计思想是很先进的,非常适合应用各种开发模式TDD, DDD和BDD,作为使用者最多的php框架,它为你准备好了一切,composer是个php的未来.laravel最大的特点和处优秀 ...
- 详细说明php的4中开源框架(TP,CI,Laravel,Yii)
ThinkPHP简称TP,TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需要一个入口文件,一起搞定,简单高效.中文文档齐全,入门超级简单.自带模板引擎,具有独特的数据验证和 ...
- PHP全栈学习笔记23
php,基础,流程控制,函数,字符串,数组,web交互,mysql数据库,PHP数据库编程,cookie与session,日期和时间,图形图形处理,文件和目录处理,面向对象,pdo数据库抽象层,sma ...
- ZF、TP、CI等各种框架的区别
(原标题:面试常见问题之ZF.TP.CI等框架的区别 http://blog.163.com/m13341159039_1/blog/static/245953061201522092212820/) ...
- php5.3到php7.0.x新特性介绍
<?php /*php5.3*/ echo '<hr>'; const MYTT = 'aaa'; #print_r(get_defined_constants()); /* 5.4 ...
- php5.3新特性 之 mysql native driver(mysqlnd)
概述 本文主要写给sa看的.码农就不用看了. mysql native driver(mysqlnd) 自从php5.3.0开始成为官方源代码的一部分, 用来取代传统的mysql client lib ...
随机推荐
- (转)清除已运行过Rancher和K8S的主机上的环境数据
文章转自 https://blog.csdn.net/CSDN_duomaomao/article/details/77684571?locationNum=5&fps=1 本文命令主要是参考 ...
- 深入springboot原理——动手封装一个starter
从上一篇文章<深入springboot原理——一步步分析springboot启动机制(starter机制)> 我们已经知道springboot的起步依赖与自动配置的机制.spring-bo ...
- Linux系统中将普通用户添加到sudoers
我们经常会在普通用户下用到sudo命令,为了不用频繁切换root用户,我们可以将普通用户添加到sudoers里面.Linux默认是没有将用户添加到sudoers列表中的,需要root手动将账户添加到s ...
- 避免for循环
http://www.360doc.com/content/10/0610/22/1217721_32411251.shtml 避免使用for循环: 在Matlab中,for循环运算效率非常低,因为M ...
- Ubuntu触摸屏校准
我是在ubuntu系统中使用触摸屏,我的是两块屏幕一个是触摸屏幕一个是普通的屏幕,触摸屏使用需要校准,所以要直接入一个触摸屏,或者两个屏幕是复制的关系,不能是扩展. 1.安装已下的两个软件,有可能第一 ...
- Android学习之六种事件响应方法汇总
java源码如下: 1.MainActivity.java源码 package com.example.responsetest; import android.app.Activity; impor ...
- 画线函数Glib_Line算法的研究
在这里首先先简单把我对函数的功能的理解阐述一下,方便后面的分析:Glib_Line函数实现的功能是通过参数给定(x1,y1,x2,y2,color),来确定起点(x1,y1)和终点(x2,y2)两 ...
- angularjs为ng-click事件传递参数
在angularjs开发中,我们需要为ng-click事件传递一个参数. 在js中,可以接到参数: 演示:
- 懒人小工具1:winform自动生成Model,Insert,Select,Delete以及导出Excel的方法
懒人小工具2:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法 github地址:https://github.com/Jimmey-Jiang/J ...
- Visual Studio2017 数据库架构比较
一.前言 开发的时候在测试服务器上和线网服务器上面都有我们的数据库,当我们在线网上面修改或者新增一些字段后,线网的数据库也需要更新,这个时候根据表的修改记录,然后在线网上面一个一个增加修改很浪费效率而 ...