從PHP5.4.x遷移到PHP5.5.x

php5.4.x遷移到php5.5.x遷移到php5

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、閬中ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的閬中網(wǎng)站制作公司

1不想后兼容的變更

(1)不在支持windows xp和2003

(2)pack和unpack()函數(shù)增加“Z”模式

(3)移除PHP log GUIDs

相關(guān)函數(shù)

php_log_guid(),php_egg_log_guid(),php_real_logo_guid(),zend_log_guid()

相關(guān)簡單案例

echo php_logo_guid();

echo '<img src="' . $_SERVER['PHP_SELF'] .

     '?=' . php_logo_guid() . '" alt="PHP Logo !" />';

 

echo  '<img src="'  .  $_SERVER [ 'PHP_SELF' ] .

      '?='  .  zend_logo_guid () .  '" alt="Zend Logo !" />' ;

var_dump(php_egg_logo_guid() );

var_dump(php_real_logo_guid() );

從 PHP 5.4.x 遷移到 PHP 5.5.x

2 新特性

(1)生成器 yield關(guān)鍵字

http://php.net/manual/zh/language.generators.overview.php

生成器提供了一種更容易的方法來實現(xiàn)簡單的對象迭代,相比較定義類實現(xiàn) Iterator 接口的方式,性能開銷和復(fù)雜性大大降低。生成器允許你在 foreach 代碼塊中寫代碼來迭代一組數(shù)據(jù)而不需要在內(nèi)存中創(chuàng)建一個數(shù)組,那會使你的內(nèi)存達(dá)到上限,或者會占據(jù)可觀的處理時間。相反,你可以寫一個生成器函數(shù),就像一個普通的自定義函數(shù)一樣, 和普通函數(shù)只返回一次不同的是, 生成器可以根據(jù)需要 yield 多次,以便生成需要迭代的值。一個簡單的例子就是使用生成器來重新實現(xiàn) range() 函數(shù)。 標(biāo)準(zhǔn)的 range() 函數(shù)需要在內(nèi)存中生成一個數(shù)組包含每一個在它范圍內(nèi)的值,然后返回該數(shù)組, 結(jié)果就是會產(chǎn)生多個很大的數(shù)組。 比如,調(diào)用 range(0, 1000000) 將導(dǎo)致內(nèi)存占用超過 100 MB。做為一種替代方法, 我們可以實現(xiàn)一個 xrange() 生成器, 只需要足夠的內(nèi)存來創(chuàng)建 Iterator 對象并在內(nèi)部跟蹤生成器的當(dāng)前狀態(tài),這樣只需要不到1K字節(jié)的內(nèi)存。

<?php

function xrange($start, $limit, $step = 1) {

    if ($start < $limit) {

        if ($step <= 0) {

            throw new LogicException('Step must be +ve');

        }

        for ($i = $start; $i <= $limit; $i += $step) {

            yield $i;

        }

    } else {

        if ($step >= 0) {

            throw new LogicException('Step must be -ve');

        }

        for ($i = $start; $i >= $limit; $i += $step) {

            yield $i;

        }

    }

}

/* 

 * 注意下面range()和xrange()輸出的結(jié)果是一樣的。

 */

echo 'Single digit odd numbers from range():  ';

foreach (range(1, 9, 2) as $number) {

    echo "$number ";

}

echo "\n";

echo 'Single digit odd numbers from xrange(): ';

foreach (xrange(1, 9, 2) as $number) {

    echo "$number ";

}

?>

Single digit odd numbers from range():  1 3 5 7 9 

Single digit odd numbers from xrange(): 1 3 5 7 9 

(2)finally關(guān)鍵字

在錯誤處理語句try...catch添加上finally與C#,java中類似

從 PHP 5.4.x 遷移到 PHP 5.5.x

從 PHP 5.4.x 遷移到 PHP 5.5.x

(3)foreach 現(xiàn)在支持 list() 

foreach 控制結(jié)構(gòu)現(xiàn)在支持通過 list() 構(gòu)造將嵌套數(shù)組分離到單獨的變量。例如: 

<?php

$array  = [

    [ 1 ,  2 ],

    [ 3 ,  4 ],

];

foreach ( $array  as list( $a ,  $b )) {

    echo  "A:  $a ; B:  $b \n" ;

}

?> 

從 PHP 5.4.x 遷移到 PHP 5.5.x

(4)empty() 支持任意表達(dá)式

empty() 現(xiàn)在支持傳入一個任意表達(dá)式,而不僅是一個變量。例如: 

php5.5.x之前版本

從 PHP 5.4.x 遷移到 PHP 5.5.x

>=php5.5.x

從 PHP 5.4.x 遷移到 PHP 5.5.x

(5)非變量array和string也能支持下標(biāo)獲取了

<?php

echo  'Array dereferencing: ' ;

echo [ 1 ,  2 ,  3 ][ 0 ];

echo  "\n" ;

echo  'String dereferencing: ' ;

echo  'PHP' [ 0 ];

echo  "\n" ;

?> 

Array dereferencing: 1

String dereferencing: P

網(wǎng)站名稱:從PHP5.4.x遷移到PHP5.5.x
本文鏈接:http://muchs.cn/article0/iepeoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護自適應(yīng)網(wǎng)站、域名注冊微信公眾號、網(wǎng)站收錄、App設(shè)計

廣告

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

外貿(mào)網(wǎng)站制作