溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php版本之間的區別是什么

發布時間:2020-09-10 10:58:54 來源:億速云 閱讀:201 作者:小新 欄目:編程語言

這篇文章主要介紹了php版本之間的區別是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

一、PHP 5.2、5.3、5.4、5.5、5.6 版本區別對比以及新功能詳解

PHP5.2 以前:autoload, PDO 和 MySQLi, 類型約束
PHP5.2:JSON 支持
PHP5.3:棄用的功能,匿名函數,新增魔術方法,命名空間,后期靜態綁定,Heredoc 和 Nowdoc, const, 三元運算符,Phar
PHP5.4:Short Open Tag, 數組簡寫形式,Traits, 內置 Web 服務器,細節修改
PHP5.5:yield, list() 用于 foreach, 細節修改
PHP5.6: 常量增強,可變函數參數,命名空間增強

php5.3

PHP5.3算是一個非常大的更新,新增了大量新特征,同時也做了一些不向下兼容的修改:

1、匿名函數

$func=function($arg){   echo $arg;
}$func('hello');

2、新增了魔術方法 __invoke(),__callStatic();

隨著匿名函數的加入,PHP 引入了一個新的魔術方法 __invoke().
該魔術方法會在將一個對象作為函數調用時被調用:

class A
{
    public function __invoke($str)
    {
        print "A::__invoke(): {$str}";
    }
}

$a = new A;
$a("Hello World");
輸出毫無疑問是:  A::__invoke(): Hello World

__callStatic() 則會在調用一個不存在的靜態方法時被調用。

3、命名空間

<?php
// 命名空間的分隔符是反斜杠,該聲明語句必須在文件第一行。
// 命名空間中可以包含任意代碼,但只有 **類, 函數, 常量** 受命名空間影響。
namespace XXOO\Test;

// 該類的完整限定名是 \XXOO\Test\A , 其中第一個反斜杠表示全局命名空間。
class A{}

// 你還可以在已經文件中定義第二個命名空間,接下來的代碼將都位于 \Other\Test2 .
namespace Other\Test2;

// 實例化來自其他命名空間的對象:
$a = new \XXOO\Test\A;
class B{}

// 你還可以用花括號定義第三個命名空間
namespace Other {
    // 實例化來自子命名空間的對象:
    $b = new Test2\B;

    // 導入來自其他命名空間的名稱,并重命名,
    // 注意只能導入類,不能用于函數和常量。
    use \XXOO\Test\A as ClassA
}

二、php7的新特性

./bin/php -v  #查看PHP版本
./bin/php -m  #查看安裝的模塊

1、變量類型

function test(int $a,string $b,array $c):int{


}

2、錯誤異常

try/catch

3、zval使用棧內存

節約了內存分配
php5
zval*val;make_std_zval(val);

php7 zval val;

感謝你能夠認真閱讀完這篇文章,希望小編分享php版本之間的區別是什么內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女