最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP7新特性簡述

 更新時間:2017年06月11日 11:31:34   作者:chaojianok  
本文通過實例給大家介紹了PHP7新特性的相關(guān)知識,需要的朋友參考下吧

類型聲明

看代碼,一目了然了。

class person
{
  public function age(int $age) : string
  {
    return 'Age is ' . $age;
  }
}

命名空間與use關(guān)鍵字批量聲明

非混合模式

use Publishers\Packt\{ Book, Ebook, Video};
use function Publishers\Packt\{ getBook, saveBook };
use const Publishers\Packt\{ COUNT, KEY };

混合模式

use Publishers\Packt\{
  Book,
  Ebook,
  Video,
  function getBook,
  function saveBook,
  const COUNT,
  const KEY
};

復(fù)合模式

use Publishers\Packt\{
  Paper\Book,
  Electronic\Ebook,
  Media\Video
};

匿名類

匿名類的聲明與使用時同時進行的,具備其他類所具備的所以功能,區(qū)別在于匿名類沒有類名。語法如下:

new class(argument) { definition };

匿名類是沒有類名的,但在PHP內(nèi)部,會在內(nèi)存的引用地址表中為其分配一個全局唯一的名稱。

$name = new class('You') {
  public function __construct($name)
  {
    echo $name;
  }
};

匿名類可以繼承父類及父類的方法。

class Packt
{
  protected $number;
  public function __construct()
  {
    echo 'parent construct';
  }
  public function getNumber() : float
  {
    return $this->number;
  }
}
$number = new class(5) extends Packt
{
  public function __construct(float $number)
  {
    parent::__construct();
    $this->number = $number;
  }
};
echo $number->getNumber();

匿名類可以繼承接口。

interface Publishers
{
  public function __construct(string name, string address);
  public function getName();
  public function getAddress();
}
class packt
{
  protected $number;
  protected $name;
  protected $address;
  public function ...
}
$info = new class('name', 'address') extends Packt implement Publishers
{
  public function __construct(string $name, string $address)
  {
    $this->name = $name;
    $this->address = $address;
  }
  public function getName() : string
  {
    return $this->name;
  }
  public function getAddress() : string
  {
    return $this->address;
  }
}
echo $info->getName() . ' ' . $info->getAddress();

匿名類可以嵌套在一個類中使用。

class Math
{
  public $first_number = 10;
  public $second_number = 10;
  public function add() : float
  {
    return $this->first_number + $this->second_number;
  }
  public function mutiply_sum()
  {
    return new class() extends Math
    {
      public function mutiply(float $third_number) : float
      {
        return $this->add() * $third_number;
      }
    };
  }
}
$math = new Math();
echo $math->mutiply_sum()->mutiply(2);

摒棄老式構(gòu)造函數(shù)

從PHP4開始,構(gòu)造函數(shù)可以通過命名與類名一致的方式來聲明自己是構(gòu)造函數(shù),在PHP7中這種方式聲明構(gòu)造函數(shù)依然可以使用,但不推薦使用,會輸出不推薦的信息 Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Packt has a deprecated constructor in ...,PHP7中推薦使用 __construct()。

throwable接口

從PHP7開始,程序中的fatal錯誤都可以被截獲,PHP7提供了throwable接口,異常與錯誤都繼承于這個接口。

Error

現(xiàn)在大多數(shù)的fatal錯誤情況會拋出一個error實例,類似于截獲異常,error實例可以被try/catch截獲。

try
{
  ...
} catch(Error $e)
{
  echo $e->getMessage();
}

一些錯誤情況只有error的子實例會被拋出,例如 TypeError、DivisionByZeroError、ParseError等。

<=>操作符

<=>操作符將==、<、>三個比較操作符打包在了一起,具體使用規(guī)則如下。

操作符兩邊相等時返回 0

操作符左邊小于右邊時返回 -1

操作符左邊大于右邊時返回 1

null合并運算符

?? 合并運算符,在第一操作數(shù)存在時可被直接返回,否則返回第二操作數(shù)。

$title = $post['title'] ?? NULL;
$title = $post['title'] ?? $get['title'] ?? 'No title';

uniform變量語法

$first = ['name' => 'second'];
$second = 'two';
echo $$first['name'];
echo ${Sfirst['name']}; // PHP7
...
echo $object->$methods['title'];
echo $object->{$methods['title']}; // PHP7

主要是因為PHP7與之前版本PHP的解析方式不一樣,在PHP7中加上花括號就可以啦,就像上邊代碼這樣,否則會報錯。

常量數(shù)組

從PHP5.6開始常量數(shù)組可以用const關(guān)鍵字來聲明,在PHP7中常量數(shù)組可以通過define函數(shù)來初始化。

const STORES = ['en', 'fr', 'ar']; // php5.6
define('STORES', ['en', 'fr', 'ar']); // php7

switch中的default默認值

在PHP7之前,switch語句中允許多個default默認值,從PHP7開始,只能有一個default默認值,否則會產(chǎn)生fatal級別錯誤。

// php7之前
switch (true) {
  case 'value':
    # code...
    break;
  default:
    # code...
    break;
  default:
    # code...
    break;
}
// php7
switch (true) {
  case 'value':
    # code...
    break;
  default:
    # code...
    break;
}

session_start函數(shù)中的選項數(shù)組

在PHP7之前,使用session的時候都必須先調(diào)用session_start()函數(shù),且這個函數(shù)并沒有參數(shù)需要傳遞,所有session相關(guān)的配置都在php.ini文件中,從PHP7開始,可以在調(diào)用這個函數(shù)時傳遞參數(shù)選項數(shù)組,這些設(shè)置信息將覆蓋php.ini中的session配置。

session_start([
  'cookie_lifetime' => 3600,
  'read_and_close' => true
]);

unserialize函數(shù)引入過濾器

unserialize()可以反序列化任何類型的對象,沒有任何過濾項,不安全,PHP7在unserialize()中引入了過濾器,且默認允許反序列化所有類型的對象。

$result = unserialize($object, ['allowed_classes' => ['Book', 'Ebook']]);

以上所述是小編給大家介紹的PHP7新特性簡述,希望對大家有所幫助!

相關(guān)文章

  • 小程序?qū)崿F(xiàn)簡單的計算器

    小程序?qū)崿F(xiàn)簡單的計算器

    這篇文章主要為大家詳細介紹了小程序?qū)崿F(xiàn)簡單的計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • javascript 數(shù)組操作詳解

    javascript 數(shù)組操作詳解

    這篇文章主要介紹了javascript 數(shù)組操作詳解,需要的朋友可以參考下
    2015-01-01
  • DOM事件探秘篇

    DOM事件探秘篇

    本文主要介紹了DOM事件的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript實現(xiàn)京東秒殺效果

    JavaScript實現(xiàn)京東秒殺效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)京東秒殺效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • tkinter使用js的canvas實現(xiàn)漸變色

    tkinter使用js的canvas實現(xiàn)漸變色

    這篇文章主要為大家介紹了tkinter使用canvas實現(xiàn)漸變色,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • String字符串截取的四種方式總結(jié)

    String字符串截取的四種方式總結(jié)

    下面小編就為大家?guī)硪黄猄tring字符串截取的四種方式總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 常常會用到的截取字符串substr()、substring()、slice()方法詳解

    常常會用到的截取字符串substr()、substring()、slice()方法詳解

    javascript中給我們提供三個截取字符串的方法,分別是:slice(),substring()和substr()。下面我們對這三個函數(shù)進行詳細說明和比較,需要的朋友可以參考下
    2015-12-12
  • JavaScript實現(xiàn)的簡單冪函數(shù)實例

    JavaScript實現(xiàn)的簡單冪函數(shù)實例

    這篇文章主要介紹了JavaScript實現(xiàn)的簡單冪函數(shù),實例分析了javascript實現(xiàn)冪運算的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • javascript 操作table的特性

    javascript 操作table的特性

    javascript操作table的特性,大家可以看下,發(fā)揮下,實現(xiàn)更多的功能。
    2009-09-09
  • Javascript 實現(xiàn)復(fù)制(Copy)動作方法大全

    Javascript 實現(xiàn)復(fù)制(Copy)動作方法大全

    現(xiàn)在瀏覽器種類也越來越多,諸如 IE、Firefox、Chrome、Safari等等,因此現(xiàn)在要實現(xiàn)一個js復(fù)制內(nèi)容到剪貼板的小功能就不是一件那么容易的事了。
    2014-06-06

最新評論

防城港市| 中江县| 德州市| 施甸县| 松桃| 栾城县| 南宫市| 石林| 昭苏县| 岳普湖县| 涿州市| 华阴市| 弥渡县| 邻水| 玉林市| 依兰县| 房产| 惠来县| 伊金霍洛旗| 连南| 高州市| 陈巴尔虎旗| 都兰县| 黔江区| 霸州市| 恩平市| 象州县| 云霄县| 大荔县| 通化县| 吴川市| 汽车| 偃师市| 天水市| 博爱县| 固原市| 商丘市| 镇安县| 房产| 阿拉善左旗| 容城县|