亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php7的一些新特性

2019-11-06 07:42:19
字體:
來源:轉載
供稿:網友

新特性預覽

1234567891011ZEND引擎升級到Zend Engine 3,也就是所謂的php NG增加抽象語法樹,使編譯更加科學64位的INT支持統一的變量語法原聲的TLS - 對擴展開發有意義一致性foreach循環的改進新增 <=>、**、?? 、/u{xxxx}操作符增加了返回類型的聲明增加了標量類型的聲明核心錯誤可以通過異常捕獲了增加了上下文敏感的詞法分析

移除的一些特性

1.移除一些舊的擴展,被移遷移到了PECL(例如:MySQL)2.移除SAPIs的支持3.<?和<? language=“php”這樣的標簽被移除了4.16進制的字符串轉換被廢除了

?
12345//PHP5"0x10" == "16" //PHP7"0x10" != "16"

5.HTTP_RAW_POST_DATA移除了(可以使用php://input替代)6.靜態函數里面不再支持通過一個不兼容的$this調用一個非靜態的函數了$o = & new className{},不再支持這樣的寫法7.php.ini文件移除了#作為注釋,統一用;去注釋

一些行為的改變

不在支持函數定義同名參數類型的同名構造函數不推薦使用了(目前沒有移除,后續會移除)String、int、float等這些關鍵字不能被作為類名使用了func_get_args()獲取的是當前變量的值

?
123456789101112function test ($num) {  $num++;  var_dump(func_get_args()[0]);}; test(1) //PHP5int(1) //PHP7int(2)

下面就挑選了一些主要的、核心的、對我們PHPer來說比較重要的特性介紹一下

PHP NG

新的php引擎優化了很多地方,也正式因為如此,才使得php7相對于php5性能有了接近兩倍的提升!

ZVAL結構的重構

左邊是PHP5的zval(24字節),右邊是PHP7的zval(16字節);

可以看出來php7的zval要比php5還要復雜,但是卻能從24個字節下降到16個字節,為什呢?

在C語言中struct的每一個成員變量要各自占據一塊獨立的內存空間,而union里的成員變量是共用一塊內存空間(php7中大量使用union替換了struct)。因此,雖然成員變量看起來多了不少,但是實際占據的內存空間有很多都是公用的卻下降了。

使用新的Zend Array替換之前的HashTale結構

我們php程序中使用最多、最有用、最方便、最靈活的就是數組了,而php5它的底層就是HashTable實現的,php7使用了新的Zend Array類型,性能和訪問速度上都有了大幅度提升!一些非常常用,開銷不大的的函數直接變成了引擎支持的opcode

?
1234call_user_function(_array) => ZEND_INIT_USER_CALLis_int/string/array/* => ZEND_TYPE_CHECKstrlen => ZEND_STRLENdefined => ZEND+DEFINED

使用了新的內存分配,管理方式,減少了內存的浪費核心排序zend_sort的優化

?
12345//PHP5 - 快速排序(非穩定排序)array(1 => 0, 0 => 0) //PHP7 - 快速排序+選擇排序(穩定排序)array(0 => 0, 1 => 0)

小于16個元素的使用選擇排序,大于16個按照16個為單位去分割,分別使用選擇排序,然后再全部合起來使用快速排序。排序較之前相比,內部元素由非穩定排序變成穩定排序,減少元素的交換次數,減少對內存的操作次數,性能提升40%抽象語法樹

假如現在我們有這樣的需求,要對php源文件就行語法檢測,實現編碼規范。php5之前的話,沒有AST,直接從parser就生成了opcodes!就需要借助一些外部的php語法解析器來實現;而php7增加了AST,我們可以自己去實現這樣一個擴展,利用擴展提供的函數可以直接獲取文件對應的的AST結構,而這樣的結構正是我們可以識別的,所以就可以在這個基礎上去做一些優化和判斷了。

64位的INT支持

支持存儲大于2GB的字符串支持上傳大小大于2GB的文件保證字符串在所有平臺上【64位】都是64bit統一的語法變量

?
1234567$$foo['bar']['baz'] //PHP5($$foo)[‘bar']['baz'] //PHP7: 遵循從左到右的原則${$foo[‘bar']['baz']}

foreach循環的改進

?
12345678910111213141516171819202122232425262728293031//PHP5$a = array(1, 2, 3);foreach($aas $v){var_dump(current($a));}int(2)int(2)int(2) $a = array(1, 2, 3);$b=&$a;foreach($aas $v){var_dump(current($a));}int(2)int(3)bool(false) $a = array(1, 2, 3);$b=$a;foreach($aas $v){var_dump(current($a));}int(1)int(1)int(1) //PHP7:不再操作數據的內部指針了$a = array(1, 2, 3);foreach($aas $v){var_dump(current($a))}int(1)int(1)int(1) $a = array(1, 2, 3);$b=&$a;foreach($aas $v){var_dump(current($a))int(1)int(1)int(1) $a = array(1, 2, 3);$b=$a;foreach($aas $v){var_dump(current($a))}int(1)int(1)int(1)

新增的幾個操作符

?
1234567891011121314151617//<=> - 比較兩個數的大小【-1:前者小于后者,0:前者等于后者,1:前者大于后者】echo 1 <=> 2;//-1echo 1 <=> 1;//0echo 1 <=> 0;//1 // ** - 【a的b次方】echo 2 ** 3;//8 //?? - 三元運算符的改進//php5$_GET['name'] ?$_GET['name'] :'';//Notice: Undefined index: …//php7$_GET['name'] ??''-> ''; ///u{xxxx} - Unicode字符的解析echo "/u{4f60}";//你echo "/u{65b0}";//新

返回類型的聲明

?
1234567891011function getInt() :int{  return“test”;}; getInt(); //PHP5#PHP Parse error: parse error, expecting '{'... //PHP7#Fatal error:Uncaught TypeError: Return value of getInt() must be of the type integer, string returned

標量類型的聲明

?
1234567891011function getInt(int $num) : int {  return$num;}; getInt(“test”); //PHP5#PHP Catchable fatal error: Argument 1 passed to getInt() must be an instance of int, string given… //PHP7#Fatal error: Uncaught TypeError: Argument 1 passed to getInt() must be of the type integer, string given…

核心錯誤可以通過異常捕獲了

?
12345678try {  non_exists_func();} catch(EngineException$e) {  echo“Exception: {$e->getMessage();}/n”;} //這里用php7試了一下還是沒法捕獲,但是看鳥哥介紹說是可行的。。。#Exception: Call to undefinedfunctionnon_exists_func()

上下問敏感的詞法分析

?
12345678910111213//PHP5class Collection {public function foreach($arr) {}}#Parse error: parse error, expecting `"identifier (T_STRING)”'... //PHP7class Collection {  publicfunctionforeach($arr) {}  publicfunctionin($arr){}  publicfunctionwhere($condition){}  publicfunctionorder($condition){}}$collection=new Collection();$collection->where()->in()->foreach()->order();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩在线免费| www.xxxx精品| 欧美亚洲国产视频小说| 国产精品日韩专区| 欧美性xxxx极品hd欧美风情| 欧美视频二区36p| 国产精品aaa| 日韩精品日韩在线观看| 在线观看精品国产视频| 亚洲日韩中文字幕在线播放| 成人黄色av网站| 亚洲欧美精品伊人久久| 欧美亚洲伦理www| 亚洲福利视频二区| 懂色av一区二区三区| 亚洲人成在线观看网站高清| 91精品免费久久久久久久久| 亚洲免费伊人电影在线观看av| 美日韩在线视频| 国产精品高清在线| 亚洲欧美制服综合另类| 亚洲欧美一区二区三区情侣bbw| 91视频九色网站| 欧美日韩国产精品一区二区三区四区| 日韩中文字幕亚洲| 中文国产成人精品| 国产成人精品电影久久久| 欧美高跟鞋交xxxxhd| 欧美三级免费观看| 久久久久99精品久久久久| 日韩成人中文电影| 91精品啪aⅴ在线观看国产| 久久久久久香蕉网| 久久影视电视剧凤归四时歌| 色琪琪综合男人的天堂aⅴ视频| 久久精品精品电影网| 91久久精品日日躁夜夜躁国产| 久久久久国产精品免费| 欧美视频在线观看免费| 国产一区二区三区高清在线观看| 亚洲性生活视频在线观看| 欧美激情videoshd| 欧美中文字幕在线观看| 在线观看免费高清视频97| 国产精品视频自在线| 欧美特级www| 久久精品久久精品亚洲人| 97久久久免费福利网址| 亚洲最大的网站| 亚洲精品国产精品国自产观看浪潮| 亚洲欧美一区二区三区情侣bbw| 国内精品视频一区| 日韩欧美aⅴ综合网站发布| 日韩黄色高清视频| 久久久久女教师免费一区| 欧美猛少妇色xxxxx| 亚洲欧美在线免费观看| 色综合久久88| 最近免费中文字幕视频2019| 韩国日本不卡在线| 精品久久久久久中文字幕| 91夜夜揉人人捏人人添红杏| 欧洲一区二区视频| 日韩av综合网| 91久久夜色精品国产网站| 久久久99免费视频| 大胆欧美人体视频| 久久国产精品久久国产精品| 欧美日韩国产精品一区| 亚洲激情视频网| 日韩精品中文在线观看| 欧洲美女7788成人免费视频| 国产高清视频一区三区| 久久久www成人免费精品| 日韩精品亚洲元码| 姬川优奈aav一区二区| 久久影院在线观看| 亚洲精品电影在线| 美女扒开尿口让男人操亚洲视频网站| 亚洲欧美激情精品一区二区| 亚洲另类图片色| 亚洲美女www午夜| 日韩中文字幕第一页| 国语自产在线不卡| 色一区av在线| 国产综合在线观看视频| 欧美日韩精品中文字幕| 日本a级片电影一区二区| 日韩风俗一区 二区| 欧美性猛交xxxx免费看漫画| 亚洲直播在线一区| 欧美大胆a视频| 久久久久久久电影一区| 欧美日韩国产精品一区二区不卡中文| 久久久伊人日本| 欧美乱大交xxxxx另类电影| 亚洲一区av在线播放| 2019中文字幕全在线观看| 国产精品99导航| 美乳少妇欧美精品| 亚洲美女性视频| 欧美日韩另类视频| 国产精品第10页| 国产精品免费电影| 国产日韩欧美综合| 庆余年2免费日韩剧观看大牛| 久久香蕉精品香蕉| 91大神在线播放精品| 欧美日韩国产专区| 久久精品国产清自在天天线| 911国产网站尤物在线观看| 欧美老女人在线视频| 亚洲黄页网在线观看| 欧美精品久久久久久久| 亚洲影视九九影院在线观看| 一个人看的www欧美| 操91在线视频| 国产自产女人91一区在线观看| 久久久亚洲国产| 久久影院在线观看| 国产精品伦子伦免费视频| 国产一区二区三区毛片| 国产精品日韩在线| 国产日韩av高清| 久久精品国产99国产精品澳门| 在线播放国产一区中文字幕剧情欧美| 在线精品高清中文字幕| 亚洲男人天天操| 亚洲成人精品在线| 国产精品xxx视频| 中文字幕日韩欧美精品在线观看| 亚洲欧美激情一区| 欧美国产日产韩国视频| 日韩欧美一区二区在线| 久久精品99国产精品酒店日本| 中文欧美日本在线资源| 一区二区欧美在线| 蜜臀久久99精品久久久久久宅男| 成人午夜在线视频一区| 国产精品白嫩初高中害羞小美女| 中文字幕av一区| 97av在线视频免费播放| 最近2019中文字幕mv免费看| 欧美日韩国产成人高清视频| 国产欧美一区二区白浆黑人| 欧美日韩在线视频一区二区| 欧美二区乱c黑人| 69精品小视频| 国产欧洲精品视频| 97视频免费在线观看| 黄色成人在线播放| 亚洲缚视频在线观看| 国产91久久婷婷一区二区| 国产精品视频在线播放| 欧美电影在线播放| 2019日本中文字幕| 91成人精品网站| 欧美日韩日本国产| 日韩av中文字幕在线播放| 久久久精品一区二区| 九九热r在线视频精品| 国产精品盗摄久久久| 成人日韩在线电影| 亚洲精品电影在线观看|