国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > PHP > 正文

談?wù)?PHP7新增功能

2024-09-04 11:43:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

php7發(fā)布已有半月,最近有時(shí)間了解一下php7的新特性,當(dāng)然,這個(gè)版本最大的特點(diǎn)是性能的提升。在下并非高手,歡迎大家指出錯(cuò)誤,同時(shí)期待共同交流。

PHP語(yǔ)言一個(gè)非常重要的特點(diǎn)就是“弱類型”,它讓PHP的程序變得非常容易編寫(xiě),新手接觸PHP能夠快速上手,不過(guò),它也伴隨著一些爭(zhēng)議。支持變量類型的定義,可以說(shuō)是革新性質(zhì)的變化,PHP開(kāi)始以可選的方式支持類型定義。除此之外,還引入了一個(gè)開(kāi)關(guān)指令declare(strict_type=1);,當(dāng)這個(gè)指令一旦開(kāi)啟,將會(huì)強(qiáng)制當(dāng)前文件下的程序遵循嚴(yán)格的函數(shù)傳參類型和返回類型。

1.在use語(yǔ)句增加了group支持

use FooLibrary/Bar/Baz/{ ClassA, ClassB, ClassC, ClassD as Fizbo };

2.增加??操作符

  1. isset($_GET['mykey']) ? $_GET['mykey'] : ""笨重 
  2. $_GET['mykey'] ?: "" 當(dāng)mykey不存在時(shí)會(huì)報(bào)一個(gè)E_NOTICE 
  3. $_GET['mykey'] ?? 'defaultvalue' 安全不會(huì)報(bào)E_NOTICE 
  4. $username = $_GET['user'] ?? 'nobody'

3. 64位PHP7字符串長(zhǎng)度可以超過(guò)2^31次方字節(jié)。

4.增加Closure::call支持

Closure::call將一個(gè)閉包函數(shù)動(dòng)態(tài)綁定到一個(gè)新的對(duì)象實(shí)例并調(diào)用執(zhí)行該函數(shù),

  1. <?php 
  2. class Value { 
  3. protected $value
  4. public function __construct($value) { 
  5. $this->value = $value
  6. public function getValue() { 
  7. return $this->value; 
  8. $three = new Value(); 
  9. $four = new Value(); 
  10. $closure = function ($delta) { var_dump($this->getValue() + $delta); }; 
  11. $closure->call($three, ); 
  12. $closure->call($four, ); 
  13. ?> 
  14. // outputs int(),int() 

5.雙引號(hào)字符串和heredocs里面支持使用/u{xxxxx}來(lái)聲明unicode字符。

6.define對(duì)數(shù)組的支持

  1. define('ANIMALS'array
  2. 'dog'
  3. 'cat'
  4. 'bird' 
  5. )); 
  6. echo ANIMALS[]; // outputs "cat" 

7.增加比較運(yùn)算符<=>

$a <=> $b

如果a等于b則為0

如果a大于b則為1

如果a小于b則為-1

8.php全局保留字可以聲明使用

  1. class View { 
  2.  public function include(View $view) { 
  3.   //... 
  4.  } 

include關(guān)鍵字可以當(dāng)普通字符串關(guān)鍵字一樣被使用

9.標(biāo)量類型(int,float,string,bool)支持

增加declare(strict_types=1)指令聲明是否嚴(yán)格類型校驗(yàn),當(dāng)在文件頭聲明declare(strict_types=1)

  1. <php 
  2. declare(strict_types=); 
  3. function add(float $a, float $b): float { 
  4.  return $a + $b
  5. add(, ); // float() 

以上代碼如果不開(kāi)啟declare(strict_types=1)或許declare(strict_types=0),php將自動(dòng)轉(zhuǎn)換參數(shù)和返回值到指定類型,開(kāi)啟declare(strict_types=1),如果參數(shù)類型不是flaot或許返回類型不是float則拋出錯(cuò)誤

10.增加接口為用戶層提供安全方便的隨機(jī)數(shù)生成器。RFC: https://wiki.php.net/rfc/easy_userland_csprng (后續(xù)再議)

11.增加了yield from 操作符。https://wiki.php.net/rfc/generator-delegation (后續(xù)再議)

知識(shí)是我們已知的 也是我們未知的 基于已有的知識(shí)之上 我們?nèi)グl(fā)現(xiàn)未知的 由此,知識(shí)得到擴(kuò)充 我們獲得的知識(shí)越多 未知的知識(shí)就會(huì)更多 因而,知識(shí)擴(kuò)充永無(wú)止境。

附:PHP7卓越性能背后的原理有哪些

PHP7在運(yùn)行原理上與PHP5相比并沒(méi)有變化,這與hhvm不同。主要是基于perf性能分析工具進(jìn)行了常規(guī)性能優(yōu)化。

減少內(nèi)存分配次數(shù),多使用棧內(nèi)存,緩存數(shù)組hash值,字符串解析成參數(shù)改為宏展開(kāi),使用大塊連續(xù)內(nèi)存代替小塊內(nèi)存等等。更細(xì)節(jié)信息請(qǐng)看鳥(niǎo)哥的PHP7分享PPT。zend引擎程序的性能提升了很多,PHP程序性能自然好了。所有的優(yōu)化都是很實(shí)在的,從細(xì)節(jié)入手積少成多。

想辦法去優(yōu)化一個(gè)有20年歷史的程序,這是一件非常有挑戰(zhàn)性的事情,比推倒重構(gòu)難度更高。世界上有80%的網(wǎng)站用PHP,使用PHP7后這些網(wǎng)站程序無(wú)太大成本就能免費(fèi)得到1倍性能提升。將節(jié)約多少CPU,節(jié)約多少電力,減少多少碳排放。另外PHP是開(kāi)源項(xiàng)目,背后沒(méi)有商業(yè)公司,完全由社區(qū)運(yùn)作。使用PHP語(yǔ)言的開(kāi)發(fā)者和企業(yè)從未向PHP官方付過(guò)一分錢(qián)。所以建議各位知友口下留德,無(wú)論您多么鄙視PHP,但請(qǐng)尊重別人為世界所做的付出。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新沂市| 江门市| 大港区| 应用必备| 即墨市| 安仁县| 东港市| 新晃| 定日县| 辽源市| 阳信县| 广宁县| 龙南县| 博兴县| 肥东县| 准格尔旗| 旺苍县| 郧西县| 手机| 远安县| 乌拉特后旗| 剑阁县| 雷州市| 闽侯县| 胶州市| 林甸县| 五台县| 泰来县| 呼玛县| 织金县| 休宁县| 祁东县| 陇西县| 泾阳县| 南京市| 赤水市| 通州市| 安远县| 南昌县| 无棣县| 洪湖市|