摘要:新特性掌握的引入,可以擴展的內容,使在某種形式上實現了多重繼承,更加靈活不能被實例化示例代碼需要注意的是,的繼承順序來自當前類的成員覆蓋了的方法,而則覆蓋了被繼承的方法當多個被同一個類使用的時候,會出現方法沖突的情況,使用關鍵詞解決示
PHP 5.4新特性
掌握
traits
trait的引入,可以擴展class的內容,使class在某種形式上實現了多重繼承,更加靈活
trait不能被實例化
示例代碼:
sayHello(); $o->sayWorld(); $o->sayExclamationMark();
需要注意的是,trait的繼承順序:
來自當前類的成員覆蓋了 trait 的方法,而 trait 則覆蓋了被繼承的方法
當多個trait被同一個類使用的時候,會出現方法沖突的情況,使用關鍵詞insteadof解決
示例代碼:
新增短數組語法
1, "two" => 2, "three" => 3, "four" => 4];新增支持對函數返回數組的成員訪問解析
現在不管是否設置 short_open_tag php.ini 選項,= 將總是可用
新增在實例化時訪問類成員
foo();ps:注意括號
SESSION 擴展現在能追蹤文件的 上傳進度
在php.ini中配置session.upload_progress.enabled = On,
就會開啟文件上傳進度跟蹤功能max_input_vars 指令
在php.ini文件中,設定max_input_vars的值,
控制$_GET、$_POST 和 $_COOKIE的最大長度
降低構造哈希碰撞進行拒絕服務攻擊的可能性了解
現在閉包支持 $this
現在支持 Class::{expr}() 語法
示例代碼:新增二進制直接量,例如:0b001001101
PHP 5.5新特性掌握
opcache集成在php發行包
opcache實際上是zend公司的Zend Optimizer Plus,功能類同apc
它的性能優于apc,對opcode進行了優化,關于opcache的更多信息
請移步鳥哥博客
一個關于Zend O+的小分享
因此在安裝PHP的時候,編譯參數一定要加上--enabled-opcache 推薦配置(php.ini) zend_extension=opcache.so opcache.enable_cli=1 opcache.memory_consumption=128 //共享內存大小, 這個根據你們的需求可調 opcache.interned_strings_buffer=8 //interned string的內存大小, 也可調 opcache.max_accelerated_files=4000 //最大緩存的文件數目 opcache.revalidate_freq=60 //60s檢查一次文件更新 opcache.fast_shutdown=1 //打開快速關閉, 打開這個在PHP Request Shutdown的時候,回收內存的速度會提高 opcache.save_comments=0 //不保存文件/函數的注釋生成器(Generators)
熟悉python的同學對生成器肯定不會陌生的
其功能是在函數中使用關鍵詞yield,中斷函數執行并返回一個能在foreach中使用的迭代器
這個語法應該是PHP5.5中最令人激動的特性了
下面的代碼演示了生成器用法,并且做了對比,用來突出生成器的優勢= 0) { throw new LogicException("step must be -ve"); } for($i = $start; $i >= $end; $i = $i + $step) { yield $i; } } } if($cmd == 0) { $r = range(1, 1000000); foreach($r as $v) { if($v > 20) { break; } echo "$v "; } $m = memory_get_usage(true); echo " " . $m/1014/1024 . "M "; }else if($cmd == 1){ $r = xrange(1, 1000000); foreach($r as $v) { if($v > 20) { break; } echo "$v "; } $m = memory_get_usage(true); echo " " . $m / 1014 /1024 . "M "; }else{ include "php-excel.class.php"; $stime = microtime(true); if($cmd == 3) { $data = array(); for($i = 0; $i < 10000;$i++) { $data[] = range(1,100); } $xls = new Excel_XML(); $xls->addWorksheet("test", $data); $xls->writeWorkbook("test.xls", "./"); }else{ $data = function($n = 10000){ for($i = 0; $i < $n; $i++) { yield xrange(1,100); } }; $xls = new Excel_XML(); $xls->addWorksheet("test", $data()); $xls->writeWorkbook("test.xls", "./"); } $ctime = microtime(true) - $stime; $m = memory_get_usage(true); echo " " . $m / 1014 /1024 . "M "; echo "cost time:" . $ctime . "s "; }ps:php-excel.class.php文件內容請參考本gist
php-excel.php新增 finally 關鍵字
示例代碼:編寫代碼的時候,一定要養成良好的習慣,及時的釋放打開的資源
password API
password系列函數,為我們存儲密碼,實現了更簡便安全的方式
密碼的存儲從明文到md5到md5+salt,到mcrpty+salt
password_hash默認使用bcrypt加密算法,自動生成salt,加密密碼
示例代碼強烈建議新應用開發密碼存儲使用內置password系列函數
array_column
這個函數早就應該有了
我們從數據庫中取出10條記錄,想要拿到這十條記錄中的指定某一列,之前只能foreach了
現在只需要一個array_coulum函數搞定,這個函數實際意義很大,多帶帶提出來講了
示例代碼:2135, "first_name" => "John", "last_name" => "Doe", ), array( "id" => 3245, "first_name" => "Sally", "last_name" => "Smith", ), array( "id" => 5342, "first_name" => "Jane", "last_name" => "Jones", ), array( "id" => 5623, "first_name" => "Peter", "last_name" => "Doe", ) ); $first_names = array_column($records, "first_name"); print_r($first_names);熟悉
foreach 現在支持 list()
需要注意的是,遍歷數組的子數組個數要一樣
empty() 支持任意表達式,函數調用也可以使用empty了
了解
改進 GD
翻轉支持使用新的 imageflip() 函數
高級裁剪支持使用 imagecrop() & imagecropauto() 函數
WebP 的讀寫分別支持使用 imagecreatefromwebp() & imagewebp()另外PHP5.4和PHP5.5新增的function,新增的class,新增的interface,新增的全局常量還是挺多的
想了解的,可以查看下面鏈接
http://www.php.net/manual/zh/migration55.new-functions.php
http://www.php.net/manual/zh/migration55.classes.php
http://www.php.net/manual/zh/migration55.new-methods.php
http://www.php.net/manual/zh/migration55.global-constants.php
http://www.php.net/manual/zh/migration54.functions.php
http://www.php.net/manual/zh/migration54.classes.php
http://www.php.net/manual/zh/migration54.methods.php
http://www.php.net/manual/zh/migration54.global-constants.php
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/20605.html
摘要:變更本部分內容不再具體區分版本號及現在使用作為默認庫強烈建議使用庫和在編譯安裝的時候,加上如下參數擴展現在需要或更高版本不再支持使用低于版本的客戶端庫連接更多變更請訪問下面的資源上面的變更主要是函數參數和配置指令在中 PHP5.4-5.5變更 ps:本部分內容不再具體區分版本號 mysqlnd mysql mysqli及PDO_mysql現在使用mysqlnd作為默認庫 ...
PHP 5.4不兼容內容 熟悉 安全模式的移除(safe_mode),涉及到php.ini配置指令 安全模式開啟,限制PHP中的一些內置函數的使用 代碼中如果有依賴于安全模式保障安全的內容,需要調整 移除魔術引號(magic_quote),涉及到php.ini配置指令 魔術引號自動對用戶提交數據轉義(包括不必要轉義的數據),性能低下 魔術引號的效果和使用 addslashes() ...
摘要: $this->getWorksheetTitle($title), data => $data ); } /** * Write workbook to file * * Writes the workbook in...
摘要:本文經授權轉自社區說明發布臨近,大體構建已經完成,文檔整理完成后即可發布。附帶了一個響應式郵件模板,通知類中唯一需要做的就是像下面這樣發送消息錯誤處理是一個可選的擴展包,提供了完整可用的服務。 本文經授權轉自 PHPHub 社區 說明 Laravel 5.3 發布臨近,大體構建已經完成,文檔整理完成后即可發布。 下面是對 Laravel 5.3 新特性的整理,不完整列表。 1、全文搜...
摘要:概述簡介引入了一套全新的時間日期,操作起來更簡便。可以使用的鎖解決的線程安全問題測試方法使用進行格式化,是線程安全的時區設置帶時區的時間本文首發于凌風博客新特性之新的時間日期作者凌風 1. 概述 1.1 簡介 Java 8 引入了一套全新的時間日期API,操作起來更簡便。簡單介紹下,LocalDate和LocalTime和LocalDateTime的使用; java.util.Dat...
閱讀 1411·2021-11-25 09:43
閱讀 2268·2021-09-27 13:36
閱讀 1121·2021-09-04 16:40
閱讀 1963·2019-08-30 11:12
閱讀 3318·2019-08-29 14:14
閱讀 572·2019-08-28 17:56
閱讀 1330·2019-08-26 13:50
閱讀 1252·2019-08-26 13:29