其他修改
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_comrypt_ofb()
- Opcache:移除了opcache.load_comments配置項,現在註解載入總是被啟動的。
- 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().
- #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, ]); ?>