中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

發布時間:2020-06-28 04:29:14 來源:網絡 閱讀:418 作者:oyjjpp 欄目:web開發

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


1不想后兼容的變更

(1)不在支持windows xp和2003

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

(3)移除PHP log GUIDs

相關函數

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

相關簡單案例

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關鍵字

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

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


<?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()輸出的結果是一樣的。

 */

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關鍵字

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

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

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


(3)foreach 現在支持 list() 

foreach 控制結構現在支持通過 list() 構造將嵌套數組分離到單獨的變量。例如: 

<?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() 支持任意表達式

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

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也能支持下標獲取了

<?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


向AI問一下細節

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

AI

德兴市| 宁乡县| 分宜县| 文昌市| 泸水县| 洪泽县| 宁明县| 隆昌县| 公安县| 双江| 寿光市| 贺州市| 台南市| 江源县| 江陵县| 抚州市| 赤壁市| 苏州市| 德州市| 塔河县| 翁牛特旗| 兰西县| 托克逊县| 囊谦县| 郧西县| 绍兴市| 台南市| 淳安县| 洛川县| 昌乐县| 汉沽区| 宜城市| 皋兰县| 庆安县| 章丘市| 弥勒县| 太仆寺旗| 南和县| 虎林市| 中方县| 江安县|