• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php7 list()、session及其他模块的修改实例分析

    本文实例讲述了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(#91; 
    'cache_limiter' => 'private', 
    'read_and_close' => true, ]); 
    ?>
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

    您可能感兴趣的文章:
    • MacOS下PHP7.1升级到PHP7.4.15的方法
    • php7和php5具体区别实例讲解
    • PHP7原生MySQL数据库操作实现代码
    • php7 参数、整形及字符串处理机制修改实例分析
    • php7 错误处理机制修改实例分析
    • php5.6.x到php7.0.x特性小结
    • PHP7.1实现的AES与RSA加密操作示例
    • php7函数,声明,返回值等新特性介绍
    • 可兼容php5与php7的cURL文件上传功能实例分析
    • php7和php5的详细对比
    上一篇:php7 新增功能实例总结
    下一篇:php7 错误处理机制修改实例分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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