真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php7所有版本新特征是怎樣的

php7所有版本新特征是怎樣的,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)公司把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開(kāi)發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!

PHP7.1新特性

1. 可為空(Nullable)類型

參數(shù)以及返回值的類型現(xiàn)在可以通過(guò)在類型前加上一個(gè)問(wèn)號(hào)使之允許為空。當(dāng)啟用這個(gè)特性時(shí),傳入的參數(shù)或者函數(shù)返回的結(jié)果要么是給定的類型,要么是null

#php5
function($a = null){
  if($a===null) {
    return null;
  }
  return $a;
}

#php7+
function fun() :?string
{
  return null;
}

function fun1(?$a)
{
  var_dump($a);
}
fun1(null);//null
fun1('1');//1
2. void 類型

返回值聲明為 void 類型的方法要么干脆省去 return 語(yǔ)句。對(duì)于 void來(lái)說(shuō),NULL不是一個(gè)合法的返回值。

function fun() :void
{
  echo "hello world";
}
3. 類常量可見(jiàn)性
class Something
{
    const PUBLIC_CONST_A = 1;
    public const PUBLIC_CONST_B = 2;
    protected const PROTECTED_CONST = 3;
    private const PRIVATE_CONST = 4;
}
4. iterable 偽類

這可以被用在參數(shù)或者返回值類型中,它代表接受數(shù)組或者實(shí)現(xiàn)了Traversable接口的對(duì)象.

function iterator(iterable $iter)
{
    foreach ($iter as $val) {
        //
    }
}
5. 多異常捕獲處理

一個(gè)catch語(yǔ)句塊現(xiàn)在可以通過(guò)管道字符(_|_)來(lái)實(shí)現(xiàn)多個(gè)異常的捕獲。 這對(duì)于需要同時(shí)處理來(lái)自不同類的不同異常時(shí)很有用

try {
    // some code
} catch (FirstException | SecondException $e) {
    // handle first and second exceptions
}
6. list支持鍵名
$data = [
    ["id" => 1, "name" => 'Tom'],
    ["id" => 2, "name" => 'Fred'],
];

// list() style
list("id" => $id1, "name" => $name1) = $data[0];
var_dump($id1);//1
7. 字符串支持負(fù)向
$a= "hello";
$a[-2];//l
8. 將callback 轉(zhuǎn)閉包

Closure新增了一個(gè)靜態(tài)方法,用于將callable快速地 轉(zhuǎn)為一個(gè)Closure 對(duì)象。

exposeFunction();
$privFunc('some value');
9. http2 服務(wù)推送

對(duì)http2服務(wù)器推送的支持現(xiàn)在已經(jīng)被加入到 CURL 擴(kuò)展

原文鏈接:https://cloud.tencent.com/dev...

PHP7.2新特性

新的對(duì)象類型

這種新的對(duì)象類型,object, 引進(jìn)了可用于逆變(contravariant)參數(shù)輸入和協(xié)變(covariant)返回任何對(duì)象類型。

允許重寫(xiě)抽象方法(Abstract method)

當(dāng)一個(gè)抽象類繼承于另外一個(gè)抽象類的時(shí)候,繼承后的抽象類可以重寫(xiě)被繼承的抽象類的抽象方法。

使用Argon2算法生成密碼散列

Argon2 已經(jīng)被加入到密碼散列(password hashing) API (這些函數(shù)以 password_ 開(kāi)頭), 以下是暴露出來(lái)的常量:

  • PASSWORD_ARGON2I

  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST

  • PASSWORD_ARGON2_DEFAULT_TIME_COST

  • PASSWORD_ARGON2_DEFAULT_THERADS

允許分組命名空間的尾部逗號(hào)

命名空間可以在PHP 7中使用尾隨逗號(hào)進(jìn)行分組引入。

PHP7.3新特性

1 發(fā)布時(shí)間

06 Dec 2018

官網(wǎng)PHP7.3新特性

2 更靈活的HeredocNowdoc語(yǔ)法

結(jié)束標(biāo)記不再需要獨(dú)立一行或緊跟分號(hào)了。同時(shí)結(jié)束標(biāo)記也可以使用縮進(jìn),使用縮進(jìn)時(shí)doc內(nèi)容的每行都會(huì)跳過(guò)相應(yīng)的縮進(jìn)。

$data = ["元素", <<
  string(6) "元素"
  [1]=>
  string(25) "Doc Content
The new line"
  [2]=>
  int(42)
}

以上語(yǔ)法中,Heredoc 作為一個(gè)數(shù)組元素出現(xiàn),同時(shí)結(jié)束標(biāo)記沒(méi)有獨(dú)立在一行,還有縮進(jìn)。注意定義的字符串內(nèi)容,兩行的縮進(jìn)都被剝除了。

3 數(shù)組析構(gòu)支持引用賦值

演示:

$v = [10, 20];
[$a, &$b] = $v;
$b += 10;
var_dump($v, $a, $b);

array(2) {
  [0]=>
  int(10)
  [1]=>
  &int(30)
}
int(10)
int(30)

在為 $b 解析時(shí),使用了引用傳遞,此時(shí) $b 和 $v[1] 元素保持引用關(guān)系。

4 list結(jié)構(gòu)支持引用解析。

演示:

$v = [10, 20];
list($c, &$d) = $v;
$d += 10;
var_dump($v, $c, $d);

array(2) {
  [0]=>
  int(10)
  [1]=>
  &int(30)
}
int(10)
int(30)

5 instanceof 運(yùn)算符支持字面量語(yǔ)法

instanceof 的第一個(gè)運(yùn)算數(shù)支持字面量,非對(duì)象型字面量檢測(cè)的結(jié)果為 false。

var_dump("literal" instanceof stdClass);
var_dump(42 instanceof stdClass);
var_dump(new stdClass() instanceof stdClass);

bool(false)
bool(false)
bool(true)

6 支持調(diào)用時(shí)參數(shù)的尾隨逗號(hào)

調(diào)用函數(shù)時(shí),參數(shù)列表后允許跟隨一個(gè)逗號(hào)。

function methodName($p1, $p2)
{
    // some statmenet
    var_dump($p1, $p2);
}
methodName(10, 20, );

int(10)
int(20)

調(diào)用函數(shù)時(shí),第二個(gè)(最后一個(gè))參數(shù)后,增加了一個(gè)逗號(hào)是允許的。但定義是不行。

7 BC 數(shù)學(xué)函數(shù)

bcscale()函數(shù)支持獲取當(dāng)前BC函數(shù)所使用的 scale。

bcscale(3);
var_dump(bcscale());

int(3)

8 LDAP 全支持

LDAP:Lightweight Directory Access Protocol,輕量目錄訪問(wèn)協(xié)議完全支持。

9 多字節(jié)字符串函數(shù)更新

  • 全功能的 Case-Mapping 和 Case-Folding 支持

  • 大小寫(xiě)不敏感字符串運(yùn)算符使用 Case-Folding

  • 支持 Unicode 11

  • 長(zhǎng)字符串支持

  • 命名捕獲支持

10 FastCGI 進(jìn)程管理

增加了如下的選項(xiàng)來(lái)配置FPM的Logging:(暫未翻譯)

  • log_limit

  • log_buffering

  • decorate_workers_output

11 Argon2id 算法支持

--with-password-argon2[=dir] 配置參數(shù)后。提供了對(duì)Password_*()函數(shù)中的 Argon2i 和 Argon2id 散列的支持。使用 PASSWORD_ARGON2ID 常量進(jìn)行指定算法。PHP需要 libargon2 庫(kù)版本要大于(等于)20161029。

12 CompileError 異常替代了一些編譯錯(cuò)誤

新的 CompileError 異常被添加,ParseError繼承了這個(gè)異常。目前只會(huì)影響 Token_GET_All() 在 Token_parse 模式下可能引發(fā)的編譯錯(cuò)誤。

13 性能提升

據(jù)說(shuō) PHP7.3 比 PHP 7.0 快 22%。未測(cè)試,有機(jī)會(huì)壓測(cè)一下。

14 廢棄大小寫(xiě)不敏感的常量

大小寫(xiě)不敏感的常量聲明現(xiàn)已被廢棄。將 TRUE 作為第三個(gè)參數(shù)傳遞給 define() 會(huì)導(dǎo)致一個(gè)廢棄警告。大小寫(xiě)不敏感的使用(在讀取時(shí)使用一個(gè)與聲明時(shí)不同的大小寫(xiě)方式)也已被廢棄。

15 廢棄在字符串中搜索非字符串內(nèi)容

將一個(gè)非字符串內(nèi)容傳遞給字符串搜索函數(shù)。 在將來(lái)所有待搜索的內(nèi)容都將被視為字符串,而不是 ASCII 編碼值。如果需要依賴這個(gè)特性,你應(yīng)該 要么顯示地進(jìn)行類型轉(zhuǎn)換(轉(zhuǎn)為字符串),或者顯示地調(diào)用 chr()。 以下是受到影響的方法:

16 新常量

新常量

原文鏈接:https://zhuanlan.zhihu.com/p/...

PHP7.4新特性

1、預(yù)加載

預(yù)加載功能是指在服務(wù)啟動(dòng)時(shí),未運(yùn)行任何應(yīng)用程序代碼之前,將一組PHP文件加載到內(nèi)存中,甚至可以對(duì)框架進(jìn)行預(yù)加載,以提高性能。如果對(duì)預(yù)加載代碼進(jìn)行修改,需要重啟服務(wù)。

預(yù)加載相比opcache:opcache雖然解決了重復(fù)編譯問(wèn)題,但opcache本身也有開(kāi)銷。引用Dmitry Stogov大佬的話:

Not only. The idea is to completely eliminate compilation and opcache overhead (copying from SHM to process memory and insertions into function/class tables on each request). Using this technique, we might write standard functions and classes in PHP (similar to systemlib.php in HHVM).  
預(yù)加載是完全消除編譯和opcache所帶來(lái)的開(kāi)銷(從共享內(nèi)存復(fù)制到進(jìn)程內(nèi)存,并在每個(gè)請(qǐng)求上插入到function/class表中),使用這種技術(shù)可以在PHP中編寫(xiě)標(biāo)準(zhǔn)函數(shù)和類(類似于HHVM中的systemlib.php)

想想看,其實(shí)預(yù)加載主要是提升像php-fpm這種架構(gòu)形式的性能,并且會(huì)占用更多的內(nèi)存資源。Benjamin Morel對(duì)預(yù)加載進(jìn)行了測(cè)試。

https://github.com/composer/composer/issues/7777#issuecomment-440268416

使用方法:

通過(guò)修改php.ini中的opcache.preload來(lái)選擇預(yù)加載程序。使用方法如下:

php.ini

[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.preload=preload.php

preload.php

hello.php

test.php

運(yùn)行

~$ php test.php
hello preload

2、FFI

有時(shí)間我們?cè)倭?,先占上位置?/p>

3、類屬性的類型支持

php版本<7.4:

php版本>=7.4:

一個(gè)完整的示例:

以下是支持的所有類型:

bool, int, float, string, array, object
iterable
self, parent
class interface // 任何 類名、接口名
?type // 其中“type”可以是以上任意一種類型

4、NULL合并賦值運(yùn)算符

寫(xiě)法:$a ??= 1 。其實(shí)就是 $a = $a ?? 1 的語(yǔ)法糖。

例子:

5、棄用WDDX擴(kuò)展

我相信大多數(shù)人和我一樣并不了解wddx,wddx是一個(gè)很“古老”的數(shù)據(jù)格式,基于xml(emmm,可能我理解的不是很對(duì),大概其就是這個(gè)意思吧)?,F(xiàn)在都在用json,所以棄用了也罷。有興趣的童鞋可以看一下這篇文章。

https://blog.csdn.net/guoguo1980/article/details/2436342

6、簡(jiǎn)化匿名函數(shù)

此特性就是一個(gè)語(yǔ)法糖,相信你在別的語(yǔ)言中也見(jiàn)到過(guò),下面是一些例子:

 $x + $y;

// 等同于

$adder = function ($x, $y) {
    return $x + $y;
};

/*******************************/

$y = 1;
$fn1 = function ($x) use ($y) {
    return $x + $y;
}; 

// 等同于

$fn2 = fn($x) => $x + $y;

// 新的寫(xiě)法省去了 use, 變得更加簡(jiǎn)潔

更多用法:

 $x;          // 參數(shù)類型聲明
fn(): int => $x;             // 返回類型聲明
fn($x = 42) => $x;           // 參數(shù)默認(rèn)值
fn(&$x) => $x;               // 引用傳遞
fn&($x) => $x;               // 引用返回
fn($x, ...$rest) => $rest;   // 變長(zhǎng)參數(shù)

其實(shí)我個(gè)人不是很贊同php引入那么多語(yǔ)法糖,這使得php的語(yǔ)法變得越來(lái)越復(fù)雜,關(guān)于此rfc的投票,鳥(niǎo)哥選擇了反對(duì),包括韓天峰大佬也對(duì)此特別反對(duì),php應(yīng)該回歸初心——簡(jiǎn)單高效。

7、新增mb_str_split函數(shù)

mb_str_split是mbstring擴(kuò)展中新增的一個(gè)函數(shù),通過(guò)函數(shù)名就可以猜到,它是str_split函數(shù)的“增強(qiáng)版(多字節(jié)處理)”,它的作用和str_split一樣,都是將字符串拆分成數(shù)組,只是增加了第三個(gè)參數(shù),用于設(shè)置字符編碼。

說(shuō)明:

mb_str_split ( string $string [, int $split_length = 1, string $encoding = mb_internal_encoding() ] ) : array

例子:

 PHP
//     [1] => 是世界
//     [2] => 上最好
//     [3] => 的語(yǔ)言
// )

// 也可以指定編碼
print_r(mb_str_split("PHP是世界上最好的語(yǔ)言", 3, "GB2312"));

8、始終可用的Hash擴(kuò)展

從PHP7.4開(kāi)始,Hash擴(kuò)展是PHP核心擴(kuò)展,無(wú)法通過(guò)--disable-hash禁用,因此它始終可用。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


新聞標(biāo)題:php7所有版本新特征是怎樣的
網(wǎng)站URL:http://weahome.cn/article/pgoips.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部