溫馨提示×

溫馨提示×

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

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

PHP5到PHP7的注意事項有哪些

發(fā)布時間:2021-06-08 09:41:38 來源:億速云 閱讀:156 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)PHP5到PHP7的注意事項有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

PHP7是大勢所趨了。PHP7有更多的新特性,更好的性能,更高的速度。并且,從今年8月7日開始發(fā)行PHP7.0的beta3 即將發(fā)布的PHP7 的RC1版本。腳步越來越近,有更多的人來學(xué)習(xí)PHP7的新特性。PHP學(xué)院將對PHP7的新特性進行連載。

并且,現(xiàn)在國內(nèi)PHPer中喜歡嘗新鮮的人一些人,已經(jīng)安裝好了PHP7。我們來看看PHP7 到底有哪些新特性。

今天我們來講解的是PHP提倡的一些風(fēng)格,并且將原有PHP4當中的一些風(fēng)格進行了禁用。

1,PHP5發(fā)行的時候為了討好ASP程序員,PHP準備了asp_tags全部被禁止

在未來沒有<%  %> 這種風(fēng)格,PHP也不再支持這種風(fēng)格的聲明。

<script language="php"></script>

2,PHP4的語法風(fēng)格中的一些東西將被,例如構(gòu)造函數(shù)的用法,會在新的PHP7中完全被拋棄。PHP7將會提示一個: E_DEPRECATED的錯誤提示。

<?php
class foo {
    //方法名類名相同的構(gòu)造函數(shù)的用法不再兼容     
    function foo() {         
        echo 'I am the constructor';     
    } 
  }
?>

1. define定義常量不僅僅只支持標量,還支持了數(shù)組

<?php

define('PHPXY', array(
    '鳳姐',
    '芙蓉姐姐',
    '楊冪是臭腳'
));

echo PHPXY[1]; // 輸出的結(jié)果是“芙蓉姐姐”
?>

2.比較的時候支持<=> 可以比較字符串,數(shù)組,整型。

<?php

// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

評:我們認為實際用戶不大,在實際工作中使用量不會很高

3.在PHP7 中支持了 函數(shù)的強制參數(shù)類型指定

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return array_sum($ints);
}

var_dump(sumOfInts(2, '3', 4.1));

//本例中會輸出9,你想想為什么喲?——因為強制規(guī)定為了整型

評:function funcName(... 參數(shù)) 是PHP5.6開始支持的。不要認為是PHP7里的知識點

4. 返回類型也在強制進行規(guī)定

function arraysSum(array ...$arrays): array
{
    return array_map(function(array $array): int {
        return array_sum($array);
    }, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

5. 新建了call方法在外部來調(diào)用,更短的方式將匿名函數(shù),追加進對向中且完成調(diào)用

class A {private $x = 1;}

// Pre PHP 7 code
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, 'A'); // intermediate closure
echo $getX();

// PHP 7+ code
$getX = function() {return $this->x;};
echo $getX->call(new A);

6. 成員方法中也可以規(guī)定必須要返回某個類類型

class A {}
class B extends A {}

class C
{
    public function test() : A
    {
        return new A;
    }
}

PHP7的刪除的一些函數(shù)是我們必須的.

PHP手冊中,為了專門應(yīng)對大家的升級,為大家將PHP7中刪除的一些函數(shù)進行了說明和整理。如果你在項目中使用到了這些函數(shù),請整個項目進行查找,修改。

1. call_user_method() 和 call_user_method_array()

2. mcrypt_generic_end() alias in favor of mcrypt_generic_deinit()

3.棄用  mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() 有利于mcrypt_decrypt() 的參數(shù) MCRYPT_MODE_*

4.棄用 datefmt_set_timezone_id() 和IntlDateFormatter::setTimeZoneID() 有利于 datefmt_set_timezone() 或者IntlDateFormatter::setTimeZone()

5. set_magic_quotes_runtime() 和它的別名函數(shù) magic_quotes_runtime()

6. set_socket_blocking() 有利于它的別名函數(shù)  stream_set_blocking()

7. 來自于fast-cgi的dl()

8.   T1Lib 支持刪除,所以刪除:imagepsbbox(), imagepsencodefont(), imagepsextendedfont(), imagepsfreefont(), imagepsloadfont(), imagepsslantfont(), imagepstext()

原本的PHP7 新特性的連載計劃出現(xiàn)了一點點小的耽擱,我們將PHP7 RC1版本的官方新聞通稿進行了翻譯。這就是大家等了很久的PHP7.0 RC1版本。

所謂RC版本,就是即將正式推行的版本。(Release Candidate) 用在軟件上就是候選版本。系統(tǒng)平臺上就是發(fā)行候選版本。RC版不會再加入新的功能了,主要著重于除錯。

PHP開發(fā)團隊宣布PHP 7.0.0 RC 1的版本是一個即將可用的版本。你可以詳細的測試,并將將遇到的問題,報告給PHP的BUG 跟蹤系統(tǒng)。

BUG測試提交的地址為:https://bugs.php.net/

1. PHP7 的速度高達php 5.6 兩倍之巨

2. 更好的支持64位操作系統(tǒng)

3. 更多的錯誤支持和新的錯誤捕獲

4. 刪除一些不支持的函數(shù)和不支持的SAPIs和擴展

5. 空合并運算符( ??)

6. 綜合比較運算符(<=>)

7. 返回類型聲明

8 .標量類型聲明

9 .匿名類

PHP刪除了一些函數(shù),其中是嚇人的是兩個:

1. ereg_* 系列的正則函數(shù)

2. mysql_* 系列的數(shù)據(jù)庫連接函數(shù)

PHP7全面刪除Mysql擴展支持,原本的mysql_*系列函數(shù)將在mysql中不再得到支持。所以說,如果你的應(yīng)用系統(tǒng)還是使用的是mysql_*系列的函數(shù)來連接數(shù)據(jù)庫,請盡快升級你的mysql系列的函數(shù)。

我們來看看,PHP7 刪除的擴展到底有哪些:

  • 1. ereg

  • 2. mssql

  • 3. mysql

  • 4. sybase_ct

替代處理和解決方案:

一、 如果你要連接微軟的sql server數(shù)據(jù)庫請使用PDO方案來代規(guī)

二、 如果你使用的mysql系列函數(shù)擴展來連接數(shù)據(jù)庫,請采用效率更高的mysql_nd系列函數(shù)。他具有更高的效率

三、 如果你采用的是ereg 系列,盡快改吧。

四、sybase_ct 全面改為sybase*系列吧

很多朋友都不知道什么是SAPI,并且不知道SAPI與PHP的關(guān)系,本章在了解PHP7 刪除了哪些SAPI的同時,你可以了解到更深入的PHP的內(nèi)部處理機制,并且了解到有哪些SAPI是被刪除

SAPI指的是PHP具體應(yīng)用的編程接口, 就像PC一樣,無論安裝哪些操作系統(tǒng),只要滿足了PC的接口規(guī)范都可以在PC上正常運行, PHP腳本要執(zhí)行有很多種方式,通過Web服務(wù)器,或者直接在命令行下,也可以嵌入在其他程序中。

  • aolserver

  • apache

  • apache_hooks

  • apache2filter

  • caudium

  • continuity

  • isapi

  • milter

  • nsapi

  • phttpd

  • pi3web

  • roxen

  • thttpd

  • tux

  • webjames

上面的這些SAPI們將不會支持了。

感謝各位的閱讀!關(guān)于“PHP5到PHP7的注意事項有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

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

AI