php7 list()、session及其他模块的修改实例分析
发布:smiling 来源: PHP粉丝网 添加日期:2022-03-08 15:40:20 浏览: 评论:0
本文实例讲述了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, ]);
- ?>
Tags: list session
- 上一篇:php7 新增功能实例总结
- 下一篇:最后一页
相关文章
- ·php list & each 实例代码(2014-09-19)
- ·PHP session_encode()和 session_decode()(2014-03-05)
- ·日期、表单接收、session、cookie(2014-06-04)
- ·phpmyadmin报错:Cannot start session without errors问题(2014-09-21)
- ·php怎么用session?PHP Session变量的使用方法(2018-07-12)
- ·php $_SESSION会员登录实例分享(2019-11-05)
- ·php环境下利用session防止页面重复刷新的具体实现(2020-08-25)
- ·PHP中使用memcache存储session的三种配置方法(2020-11-05)
- ·PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法(2020-11-25)
- ·PHP中设置一个严格30分钟过期Session面试题的4种答案(2021-03-27)
- ·PHP利用MySQL保存session的实现思路及示例代码(2021-04-11)
- ·php使用$_POST或$_SESSION[]向js函数传参(2021-04-12)
- ·CI框架Session.php源码分析(2021-04-22)
- ·php中使用session_set_save_handler()函数把session保存到MySQL数据库实例(2021-04-24)
- ·php提示Failed to write session data错误的解决方法(2021-05-03)
- ·PHP 图像处理与SESSION制作超简单验证码的方法示例(2022-01-25)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)