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 正则表达式小结
Aug 31 PHP
PHP的autoload自动加载机制使用说明
Dec 28 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
php5.3 注意事项说明
Jul 01 PHP
Laravel框架表单验证详解
Sep 04 PHP
php清除和销毁session的方法分析
Mar 19 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 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 Try Catch异常测试
2009/03/01 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
php与js的区别是什么
2013/08/05 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
python基于SMTP协议发送邮件
2019/05/31 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
python实现字符串和数字拼接
2020/03/02 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
行政文秘岗位职责范本
2014/02/10 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
2014年后勤工作总结
2014/11/18 职场文书
实习班主任自我评价
2015/03/11 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
活动总结书怎么写
2015/05/11 职场文书
小学生暑假安全公约
2015/07/14 职场文书
PHP新手指南
2021/04/01 PHP
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL