php7 list()、session及其他模块的修改实例分析


Posted in PHP onMay 25, 2020

本文实例讲述了php7 list()、session及其他模块的修改。分享给大家供大家参考,具体如下:

一、list()不再按照相反的顺序赋值

list($array[], $array[], $array[]) = [1, 2, 3]; 
var_dump($array);

上面的代码会返回一个数组:$array == [1, 2, 3] 而不是之前的 [3, 2, 1]

注意:只是赋值的顺序发生变化,赋的值还是和原来一样的。

list($a, $b, $c) = [1, 2, 3]; // $a = 1; $b = 2; $c = 3;

和原来的行为还是一样的。

二、空的list()赋值不再允许。

list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;

上面的这些代码运行起来会报错了。

三、list()不在支持字符串拆分功能   

$string = "xy";
list($x, $y) = $string;

这段代码最终的结果是:$x == null and $y == null (不会有提示)

PHP5运行的结果是:

$x == "x" and $y == "y".

四、除此之外,list()现在也适用于数组对象:

list($a, $b) = (object) new ArrayObject([0, 1]);

PHP7结果:

$a == 0 and $b == 1.

PHP5结果:

$a == null and $b == null.

PHP7其他修改

CURL模块:禁止禁用CURLOPT_SAFE_UPLOAD选项,通过curl上传文件必须使用curl_file/CURLFILE接口。

DATE模块:mktime()和gmmktime()函数移除了$is_dst parameter参数。

DBA模块:dba_delete() 如果在inifile里面没有找到key的时候会返回false。

GMP模块:必须用libgmp 4.2版本以上。gmp_setbit() and gmp_clrbit()如果传入的index为负数的话,会返回false。

Intl模块:移除了别名函数datefmt_set_timezone_id() 和IntlDateFormatter::setTimeZoneID(),用datefmt_set_timezone() 和IntlDateFormatter::setTimeZone()

libxml模块:新增ibxml 2.9.0引入的LIBXML_BIGLINES 选项,并在错误报告中增加了行号> 16-bit的支持。

Mcrypt模块:.移除了mcrypt_generic_end() mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() 和mcrypt_ofb()

Opcache:移除了opcache.load_comments配置项,现在注释加载总是被激活的。

OpenSSL:移除了"rsa_key_size"、"CN_match" 、"SNI_server_name" 选项。

PCRE:移除了 /e (PREG_REPLACE_EVAL) 修饰符的支持,使用preg_replace_callback()来代替。

PDO_pgsql:删除了PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT选项。

Standard:删除了setlocale()函数里面对字符串类型的支持,使用LC_*常量。删除了set_magic_quotes_runtime() magic_quotes_runtime().

JSON:json_decode()会拒绝与RFC 7159不兼容的数字格式。json_decode第一个参数是空值的时候会返回json语法错误。

Stream:删除别名函数set_socket_blocking()

XSL:删除xsl.security_prefs 选项。

session

session_start()可以接受所有的INI设置,可以用数组的方式传入,比如:['cache_limiter'=>'private']

save handler接受validate_sid(), update_timestamp() ,可用来检查sid是否存在,更新session数据的时间戳。

增加了SessionUpdateTimestampHandlerInterface,这个接口里面定义了validateSid(), updateTimestamp()方法。

session.lazy_write(default=On) 配置项可以允许只有session数据有变化时才写数据。

PHP 7 Session 选项

PHP 7 session_start()函数可以接收一个数组作为参数,可以覆盖php.ini中session的配置项。

这个特性也引入了一个新的php.ini设置(session.lazy_write),默认情况下设置为 true,意味着session数据只在发生变化时才写入。

除了常规的会话配置指示项, 还可以在此数组中包含 read_and_close 选项。如果将此选项的值设置为 TRUE, 那么会话文件会在读取完毕之后马上关闭, 因此,可以在会话数据没有变动的时候,避免不必要的文件锁。

实例

把cache_limiter设置为私有的,同时在阅读完session后立即关闭。

<?php 
session_start([ 
'cache_limiter' => 'private', 
'read_and_close' => true, ]); 
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
PHP使用数组实现队列
Feb 05 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
Dec 06 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
php实现查询百度google收录情况(示例代码)
Aug 02 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
帝国cms常用标签汇总
Jul 06 PHP
php提交post数组参数实例分析
Dec 17 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
php7 新增功能实例总结
May 25 #PHP
PHP强制转化的形式整理
May 22 #PHP
Yii 框架入口脚本示例分析
May 19 #PHP
Yii 框架使用数据库(databases)的方法示例
May 19 #PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 #PHP
PHP项目多语言配置平台实现过程解析
May 18 #PHP
Yii 框架使用Forms操作详解
May 18 #PHP
You might like
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
PHP静态文件生成类实例
2014/11/29 PHP
php猜单词游戏
2015/09/29 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
Nginx实现反向代理
2017/09/20 Servers
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
jquery动态添加option示例
2013/12/30 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
详解Vue项目中实现锚点定位
2019/04/24 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
如何提高JDBC的性能
2013/04/30 面试题
车间班长岗位职责
2013/11/30 职场文书
大学生思想汇报范文
2013/12/31 职场文书
超市端午节活动方案
2014/01/23 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python