PHP5 6新特性介紹

2021-06-29 09:13:47 字數 2632 閱讀 4481

php5.6已經發布alpha版,預示著下乙個大版本的公升級即將到來,php5.6帶來了哪些新特性?本文將介紹這些特性,並討論它們可以給開發者帶來哪些好處。

在常量、屬性宣告和函式引數預設值宣告時,以前版本只允許常量值,php5.6開始允許使用包含數字、字串字面值和常量的標量表示式。

<?php

const

one=1

;const

two=one*2

;classc

}echo

(new c)

->f()

."\n"

;echo

c::sentence

;

上面**輸出:

4

the value of three is

3

可變引數函式 的實現, 不再依賴func_get_args()函式,現在可以通過新增的操作符...更簡潔地實現。

<?php

functionf(

$req

,$opt

=null

,...

$params)f

(1);f

(1,2

);f(1

,2,3

);f(1

,2,3

,4);f

(1,2

,3,4

,5);

上面**輸出:

$req: 1; $opt: 0; number of params: 0

$req: 1; $opt: 2; number of params: 0

$req: 1; $opt: 2; number of params: 1

$req: 1; $opt: 2; number of params: 2

$req: 1; $opt: 2; number of params: 3

在呼叫函式的時候,通過...操作符可以把陣列或者可遍歷物件解包到引數列表,這和ruby等語言中的擴張(splat)操作符類似。

<?php

function

add($a,

$b,$c)

$operators =[

2,3];

echo

add(1

,...

$operators

);

上面**輸出:

6
use操作符開始支援函式和常量的匯入。use functionuse const結構的用法的示例:

<?php

namespace

name\space

}namespace

上面**輸出:

42

name\space\f

php自帶了乙個互動式偵錯程式phpdbg,它是乙個sapi模組,更多資訊參考 phpdbg文件 。

php://input開始支援多次開啟和讀取,這給處理post資料的模組的記憶體占用帶來了極大的改善。

可以上傳超過2g的大檔案。

gmp 物件支援操作符過載和轉換為標量,改善了**的可讀性,如:

<?php

$a =

gmp_init(42

);$b

=gmp_init(17

);// pre-5.6 code:

var_dump

(gmp_add($a

,$b));var_dump

(gmp_add($a

,17));var_dump

(gmp_add(42

,$b));// new code:

var_dump($a

+$b);var_dump($a

+17);var_dump(42

+$b);

採用cryptopro s-box tables實現了gost-crypto雜湊演算法,詳情參考 rfc 4357, section 11.2 。

openssl擴充套件新增證書指紋的提取和驗證功能,openssl_x509_fingerprint()用於提取x.509證書的指紋,ssl stream context 選項:capture_peer_cert用於獲取對方x.509證書;peer_fingerprint用於斷言對方證書和給定的指紋匹配。

另外,可以通過ssl流上下文選項crypto_method指定加密方法,如sslv3或tls,目前支援的選項值包括stream_crypto_method_sslv2_client, stream_crypto_method_sslv3_client, stream_crypto_method_sslv23_client (預設), or stream_crypto_method_tls_client。

linux系統安裝php5 6

安裝php的開始首先需要配置一下php的依賴包,使用 yum install libxml2和yum install libxml2 devel進行新增。使用.configure prefix usr local php with apxs2 usr local apache bin apxs命令進...

linux debian 編譯安裝php5 6

安裝編譯程式 apt get install gcc apt get install make apt get install libxml2 apt get install libxml 2.6 dev 建立安裝目錄 mkdir usr local php mkdir usr local php ...

原始碼編譯安裝php5 6

cd usr local src wget net get php 5.6 24.tar gz from this mirror mv mirror php 5.6 24.tar gztar zxvf php 5.6 24.tar gzcd php 5.6 24xml擴充套件 apt get ins...