成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PHP7中新特性有哪些

這篇文章主要為大家展示了“PHP7中新特性有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“PHP7中新特性有哪些”這篇文章吧。

10年的西安網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都全網營銷的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整西安建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“西安網站設計”,“西安網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

類型聲明

代碼:

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

命名空間與use關鍵字批量聲明

非混合模式

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
};

復合模式

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

匿名類

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

new class(argument) { definition };

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

$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);

摒棄老式構造函數

從PHP4開始,構造函數可以通過命名與類名一致的方式來聲明自己是構造函數,在PHP7中這種方式聲明構造函數依然可以使用,但不推薦使用,會輸出不推薦的信息 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

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

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

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

<=>操作符

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

操作符兩邊相等時返回 0

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

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

null合并運算符

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

$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中加上花括號就可以啦,就像上邊代碼這樣,否則會報錯。

常量數組

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

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

switch中的default默認值

在PHP7之前,switch語句中允許多個default默認值,從PHP7開始,只能有一個default默認值,否則會產生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函數中的選項數組

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

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

unserialize函數引入過濾器

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

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

以上是“PHP7中新特性有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網站題目:PHP7中新特性有哪些
當前URL:http://jinyejixie.com/article0/ghopoo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供做網站、移動網站建設、自適應網站、品牌網站設計、云服務器、網站設計公司

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網站建設
镇宁| 娱乐| 兴山县| 呼玛县| 米泉市| 垣曲县| 含山县| 广饶县| 永嘉县| 朔州市| 宜良县| 衡东县| 凤阳县| 承德县| 洛隆县| 永丰县| 漠河县| 秦安县| 建德市| 九龙城区| 乐亭县| 林甸县| 辰溪县| 沙河市| 新泰市| 灌阳县| 高雄县| 甘德县| 准格尔旗| 徐闻县| 修文县| 靖州| 苏尼特左旗| 伊宁市| 盘锦市| 卢湾区| 大连市| 积石山| 阿瓦提县| 历史| 潮安县|