php7 list()、session及其他模块的修改实例分析
本文实例讲述了php7list()、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==nulland$y==null(不会有提示)
PHP5运行的结果是:
$x=="x"and$y=="y".
四、除此之外,list()现在也适用于数组对象:
list($a,$b)=(object)newArrayObject([0,1]);
PHP7结果:
$a==0and$b==1.
PHP5结果:
$a==nulland$b==null.
PHP7其他修改
CURL模块:禁止禁用CURLOPT_SAFE_UPLOAD选项,通过curl上传文件必须使用curl_file/CURLFILE接口。
DATE模块:mktime()和gmmktime()函数移除了$is_dstparameter参数。
DBA模块:dba_delete()如果在inifile里面没有找到key的时候会返回false。
GMP模块:必须用libgmp4.2版本以上。gmp_setbit()andgmp_clrbit()如果传入的index为负数的话,会返回false。
Intl模块:移除了别名函数datefmt_set_timezone_id()和IntlDateFormatter::setTimeZoneID(),用datefmt_set_timezone()和IntlDateFormatter::setTimeZone()
libxml模块:新增ibxml2.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()会拒绝与RFC7159不兼容的数字格式。json_decode第一个参数是空值的时候会返回json语法错误。
Stream:删除别名函数set_socket_blocking()
XSL:删除xsl.security_prefs选项。
session
session_start()可以接受所有的INI设置,可以用数组的方式传入,比如:['cache_limiter'=>'private']
savehandler接受validate_sid(),update_timestamp(),可用来检查sid是否存在,更新session数据的时间戳。
增加了SessionUpdateTimestampHandlerInterface,这个接口里面定义了validateSid(),updateTimestamp()方法。
session.lazy_write(default=On)配置项可以允许只有session数据有变化时才写数据。
PHP7Session选项
PHP7session_start()函数可以接收一个数组作为参数,可以覆盖php.ini中session的配置项。
这个特性也引入了一个新的php.ini设置(session.lazy_write),默认情况下设置为true,意味着session数据只在发生变化时才写入。
除了常规的会话配置指示项,还可以在此数组中包含read_and_close选项。如果将此选项的值设置为TRUE,那么会话文件会在读取完毕之后马上关闭,因此,可以在会话数据没有变动的时候,避免不必要的文件锁。
实例
把cache_limiter设置为私有的,同时在阅读完session后立即关闭。
'private', 'read_and_close'=>true,]); ?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。