博客列表 >php7 list()、session及其他模块的修改实例分析

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

P粉823318658
P粉823318658原创
2022年03月23日 10:53:53684浏览
  1. 1
  2. list($a, $b) = (object) new ArrayObject([0, 1]);
  3. ``````php
  4. 这篇文章主要介绍了php7 list()、session及其他模块的修改,结合实例形式分析了php7 list()、session及其他模块的修改相关操作技巧与使用注意事项,需要的朋友可以参考下
  5. 本文实例讲述了php7 list()、session及其他模块的修改。分享给大家供大家参考,具体如下:
  6. 一、list()不再按照相反的顺序赋值
  1. list($array[], $array[], $array[]) = [1, 2, 3];
  2. var_dump($array);
  1. 上面的代码会返回一个数组:$array == [1, 2, 3] 而不是之前的 [3, 2, 1]
  2. 注意:只是赋值的顺序发生变化,赋的值还是和原来一样的
  1. 1
  2. list($a, $b, $c) = [1, 2, 3]; // $a = 1; $b = 2; $c = 3;
  1. 和原来的行为还是一样的。
  2. 二、空的list()赋值不再允许
  3. ``````php
  4. list() = $a;
  5. list(,,) = $a;
  6. list($x, list(), $y) = $a;
  7. ``````php
  8. 上面的这些代码运行起来会报错了。
  9. 三、list()不在支持字符串拆分功能
  1. $string = "xy";
  2. list($x, $y) = $string;
  3. ``````php
  4. 这段代码最终的结果是:$x == null and $y == null (不会有提示)
  5. PHP5运行的结果是:
  6. $x == "x" and $y == "y".
  7. 四、除此之外,list()现在也适用于数组对象:
  1. PHP7结果:
  2. $a == 0 and $b == 1.
  3. PHP5结果:
  4. $a == null and $b == null.
  5. PHP7其他修改
  6. CURL模块:禁止禁用CURLOPT_SAFE_UPLOAD选项,通过curl上传文件必须使用curl_file/CURLFILE接口。
  7. DATE模块:mktime()和gmmktime()函数移除了$is_dst parameter参数。
  8. DBA模块:dba_delete() 如果在inifile里面没有找到key的时候会返回false
  9. GMP模块:必须用libgmp 4.2版本以上。gmp_setbit() and gmp_clrbit()如果传入的index为负数的话,会返回false
  10. Intl模块:移除了别名函数datefmt_set_timezone_id() IntlDateFormatter::setTimeZoneID(),用datefmt_set_timezone() IntlDateFormatter::setTimeZone()
  1. Mcrypt模块:.移除了mcrypt_generic_end() mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() mcrypt_ofb()
  2. Opcache:移除了opcache.load_comments配置项,现在注释加载总是被激活的。
  3. OpenSSL:移除了"rsa_key_size""CN_match" "SNI_server_name" 选项。
  4. PCRE:移除了 /e (PREG_REPLACE_EVAL) 修饰符的支持,使用preg_replace_callback()来代替。
  5. PDO_pgsql:删除了PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT选项。
  6. Standard:删除了setlocale()函数里面对字符串类型的支持,使用LC_*常量。删除了set_magic_quotes_runtime() magic_quotes_runtime().
  1. JSONjson_decode()会拒绝与RFC 7159不兼容的数字格式。json_decode第一个参数是空值的时候会返回json语法错误。
  2. Stream:删除别名函数set_socket_blocking()
  3. XSL:删除xsl.security_prefs 选项。
  4. session
  5. session_start()可以接受所有的INI设置,可以用数组的方式传入,比如:['cache_limiter'=>'private']
  6. save handler接受validate_sid(), update_timestamp() ,可用来检查sid是否存在,更新session数据的时间戳。
  7. 增加了SessionUpdateTimestampHandlerInterface,这个接口里面定义了validateSid(), updateTimestamp()方法。
  8. session.lazy_write(default=On) 配置项可以允许只有session数据有变化时才写数据。
  9. PHP 7 Session 选项
  10. PHP 7 session_start()函数可以接收一个数组作为参数,可以覆盖php.inisession的配置项。
  11. 这个特性也引入了一个新的php.ini设置(session.lazy_write),默认情况下设置为 true,意味着session数据只在发生变化时才写入。
  12. 除了常规的会话配置指示项, 还可以在此数组中包含 read_and_close 选项。如果将此选项的值设置为 TRUE 那么会话文件会在读取完毕之后马上关闭, 因此,可以在会话数据没有变动的时候,避免不必要的文件锁。
  13. 实例
  14. cache_limiter设置为私有的,同时在阅读完session后立即关闭。
  1. <?php
  2. session_start(&#91;
  3. 'cache_limiter' => 'private',
  4. 'read_and_close' => true, ]);
  5. ?>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议