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 相关文章推荐
PHP与javascript的两种交互方式
Oct 09 PHP
个人站长制做网页常用的php代码
Mar 03 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
基于PHP常用字符串的总结(待续)
Jun 07 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
PHP微信刮刮卡 附微信接口
Jul 22 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学习之正则表达式
2011/04/17 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
js判断是否是手机页面
2017/03/17 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
js+SVG实现动态时钟效果
2018/07/14 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
对Python中的@classmethod用法详解
2018/04/21 Python
python元组的概念知识点
2019/11/19 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
上学迟到的检讨书
2014/01/11 职场文书
战略合作协议书范本
2014/04/18 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
啤酒节策划方案
2014/05/28 职场文书
调研汇报材料范文
2014/08/17 职场文书
考试保密承诺书
2014/08/30 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
员工工作及收入证明
2014/10/28 职场文书
财政局长个人总结
2015/03/04 职场文书
具结保证书范本
2015/05/11 职场文书