搜尋
首頁後端開發PHP7一招搞定PHP5到PHP7的注意事項

這篇文章跟大家介紹一下從PHP5到PHP7的注意事項。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

一招搞定PHP5到PHP7的注意事項

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

並且,現在國內PHPer中喜歡嚐新鮮的人一些人,已經安裝好了PHP7。我們來看看PHP7 到底有哪些新特性。

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

1,PHP5發行的時候為了討好ASP程式設計師,PHP準備了asp_tags全部被禁止

在未來沒有 這種風格,PHP也不再支持這種風格的聲明。

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

2,PHP4的語法風格中的某些東西將被,例如建構子的用法,會在新的PHP7中完全被拋棄。 PHP7將會提示一個: E_DEPRECATED的錯誤提示。

<?php
class foo {
    //方法名类名相同的构造函数的用法不再兼容     
    function foo() {         
        echo &#39;I am the constructor&#39;;     
    } 
  }
?>

1. define定義常數不僅僅只支援標量,還支援了數組

<?php

define(&#39;PHPXY&#39;, array(
    &#39;凤姐&#39;,
    &#39;芙蓉姐姐&#39;,
    &#39;杨幂是臭脚&#39;
));

echo PHPXY[1]; // 输出的结果是“芙蓉姐姐”
?>

2.比較的時候支援 可以比較字串,數組,整型。

<?php

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

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

#3.在PHP7 中支援了函數的強制參數類型指定

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

var_dump(sumOfInts(2, &#39;3&#39;, 4.1));

//本例中会输出9,你想想为什么哟?——因为强制规定为了整型

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

4. 返回類型也在強制進行規定

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方法在外部來調用,更短的方式將匿名函數,追加進對向中且完成呼叫

class A {private $x = 1;}

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

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

6. 成員方法中也可以規定必須要傳回某個類別類型

class A {}
class B extends A {}

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

PHP7的刪除的一些函數是我們必須的.

PHP手冊中,為了專門應付大家的升級,為大家將PHP7中刪除的一些函數進行了說明與整理。如果你在專案中使用到了這些函數,請整個專案進行查找,修改。

1. call_user_method() 和call_user_method_array()

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

3.##ofrypt_ecb(),cmcpt_ecb(),

#3.cmcpt , mcrypt_cfb() and mcrypt_ofb() 有利於mcrypt_decrypt() 的參數MCRYPT_MODE_*

4.棄用datefmt_set_timezone_id() 和IntlDateFormatter::setTimeZoneID() 有利於datefForm;

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

6. set_socket_blocking() 有利於它的別名函數 stream_set_blocking()

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

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

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

所謂RC版本,就是即將正式推行的版本。 (Release Candidate) 用在軟體上就是候選版本。系統平台上就是發行候選版本。 RC版不會再加入新的功能了,主要著重在調試。

PHP開發團隊宣布PHP 7.0.0 RC 1的版本是即將可用的版本。你可以詳細的測試,並將將遇到的問題,報告給PHP的BUG 追蹤系統。

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

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

2. 更好的支援64位元作業系統

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

4. 刪除一些不支援的函數和不支援的SAPIs和擴充

5. 空白合併運算子( ??)

6. 綜合比較運算子()

7. 傳回型別宣告

8 .標量類型宣告

9 .匿名類別

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

1. ereg_* 系列的正規函數

2. mysql_* 系列的資料庫連接函數

PHP7全面刪除Mysql擴充支持,原本的mysql_*系列函數將在mysql中不再得到支持。所以說,如果你的應用系統還是使用的是mysql_*系列的函數來連接資料庫,請盡快升級你的mysql系列的函數。

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

    1. ereg
  • ##2.mssql
  • 3. mysql
  • 4. sybase_ct
  • 替代處理與解決方案:
一、 如果你要連接微軟的sql server資料庫請使用PDO方案來代規

二、 如果你使用的mysql系列函數擴充來連接資料庫,請採用效率更高的mysql_nd系列函數。他有更高的效率

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

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

很多朋友都不知道什麼是SAPI,也不知道SAPI與PHP的關係,本章在了解PHP7 刪除了哪些SAPI的同時,你可以了解到更深入的PHP的內部處理機制,並且了解到有哪些SAPI是被刪除 

SAPI指的是PHP具體應用的編程接口, 就像PC一樣,無論安裝哪些操作系統,只要滿足了PC的接口規範都可以在PC上正常運行, PHP腳本要執行有很多種方式,透過Web伺服器,或直接在命令列下,也可以嵌入在其他程式中。

  • aolserver

  • apache

  • apache_hooks

  • # #apache2filter
  • caudium
  • #continuity
  • ##isapi
  • #milter

nsapi

#phttpd############pi3web####### #####roxen############thttpd#############tux############webjames############ #######上面的這些SAPI們將不會支援了。 ######推薦學習:###php影片教學######

以上是一招搞定PHP5到PHP7的注意事項的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。