php5.3和php5.4有什麼區別

2020-09-28 15:00:24

php5.3和php5.4的區別:1、php5.4增加了陣列的簡寫形式;2、php5.4增加了Traits;3、自php5.4開始,內建一個輕量級的web伺服器;4、php5.4新增了動態存取靜態方法的方式。

1、Short Open Tag 自 PHP5.4 起總是可用

(推薦教學:)

在這裡集中講一下有關 PHP 起止標籤的問題。即:

<?php
// Code...
?>

通常就是上面的形式,除此之外還有一種簡寫形式:

<? /* Code... */ ?>

還可以把

<?php echo $xxoo;?>

簡寫成:

<?= $xxoo;?>

這種簡寫形式被稱為 Short Open Tag, 在 PHP5.3 起被預設開啟,在 PHP5.4 起總是可用。使用這種簡寫形式在 HTML 中嵌入 PHP 變數將會非常方便。

對於純 PHP 檔案(如類實現檔案), PHP 官方建議頂格寫起始標記,同時 省略 結束標記。這樣可以確保整個 PHP 檔案都是 PHP 程式碼,沒有任何輸出,否則當你包含該檔案後,設定 Header 和 Cookie 時會遇到一些麻煩

注:Header 和 Cookie 必須在輸出任何內容之前被傳送。

2、陣列簡寫形式

這是非常方便的一項特徵!

// 原來的陣列寫法
$arr = array("key" => "value", "key2" => "value2");
// 簡寫形式
$arr = ["key" => "value", "key2" => "value2"];

3、Traits

所謂Traits就是「構件」,是用來替代繼承的一種機制。PHP中無法進行多重繼承,但一個類可以包含多個Traits.

// Traits不能被單獨範例化,只能被類所包含
trait SayWorld
{
    public function sayHello()
    {
        echo 'World!';
    }
}
class MyHelloWorld
{
    // 將SayWorld中的成員包含進來
    use SayWorld;
}
$xxoo = new MyHelloWorld();
// sayHello() 函數是來自 SayWorld 構件的
$xxoo->sayHello();

Traits還有很多神奇的功能,比如包含多個Traits, 解決衝突,修改存取許可權,為函數設定別名等等。

4、內建 Web 伺服器

PHP從5.4開始內建一個輕量級的Web伺服器,不支援並行,定位是用於開發和偵錯環境。

在開發環境使用它的確非常方便。

php -S localhost:8000

這樣就在當前目錄建立起了一個Web伺服器,你可以通過 http://localhost:8000/ 來存取。
其中localhost是監聽的ip,8000是監聽的埠,可以自行修改。

很多應用中,都會進行URL重寫,所以PHP提供了一個設定路由指令碼的功能:

php -S localhost:8000 index.php

這樣一來,所有的請求都會由index.php來處理。

你還可以使用 XDebug 來進行斷點偵錯。

5、細節修改

PHP5.4 新增了動態存取靜態方法的方式:

$func = "funcXXOO";
A::{$func}();

新增在範例化時存取類成員的特徵:

(new MyClass)->xxoo();

新增支援對函數返回陣列的成員存取解析(這種寫法在之前版本是會報錯的):

print func()[0];

相關推薦:

以上就是php5.3和php5.4有什麼區別的詳細內容,更多請關注TW511.COM其它相關文章!