首頁 後端開發 PHP7 你不得不知道的php7小知識

你不得不知道的php7小知識

Aug 06, 2021 pm 05:36 PM
php7

PHP7正式發佈到現在已經很久了,剛出道就號稱比舊版本快了幾倍,各種開源框架或系統運行在PHP7上速度效率提高了幾倍,反正不管是媒體還是開發者都在煽風點火,不,應該是讚不絕口。

你不得不知道的php7小知識

一般手機系統升級我是跑最後的,因為不願意踩坑,畢竟iOS和Android這種系統都會出現bug,何況世界上被人駭的最多的語言。

今日時機已到,猿姐開始給你們科普科普有關PHP7你必須要了解的幾件事。

1. 新的Zend引擎

Zend引擎從1999年的php4開始就開始驅動著php,Zend(不要與zend framework混淆)是一個用C語言開發的開源引擎.現在的php 5.X的版本用的Zend II版本,它對php來說有著重要的性能提升.Php7將採用叫PHPNG的新引擎來驅動

2. 更方便的錯誤處理

捕獲和處理錯誤對於php程式猿來說,從來不是一件簡單的活.新的引擎將允許你用異常來代替錯誤.就像在php5.X的版本中一樣,在php7中如果異常沒被捕獲,

php將回傳錯誤.

\EngineException 物件沒有繼承\Exception,這保證了程式碼的向後相容和在錯誤處理時的兩種不同類型的異常處理:傳統的和新的引擎的異常處理.

為了方便我們捕獲兩種異常,php7引入了新的如下的異常處理方式: 

你不得不知道的php7小知識

3. 64位元windows作業系統的支援

php是LAMP的成員,也就意味著它原生的環境是Linux-但它也能在windows作業系統上運行.5.X版本還不支援64位元整形或大檔案的支援,因此X64 系列的架構的windows還是試驗性的.

php7將會支援支援64位元的windows,也意味著64位元整形和大檔案將被支援

4. 標量類型宣告

標量型別宣告 有兩種模式: 強制(預設) 和嚴格模式。現在可以使用下列型別參數(無論是強制模式或嚴格模式): 字串(string), 整數 (int), 浮點數 (float), 以及布林值 (bool)。它們擴充了PHP5中引入的其他類型:類別名,接口,數組和 回調類型。

你不得不知道的php7小知識

以上例程會輸出:

你不得不知道的php7小知識

#要使用嚴格模式,一個 declare 宣告指令必須放在檔案的頂部。這意味著嚴格聲明標量是基於文件可配的。這個指令不僅影響參數的類型聲明,也影響到函數的回傳值聲明(參見 回傳值類型聲明, 內建的PHP函數以及擴充中載入的PHP函數)

5. 密碼雜湊中的Argon2

Argon2 是榮獲2015 年密碼雜湊演算法比賽中的冠軍的強大雜湊演算法, PHP 7.2 將其作為安全 Bcrypt 演算法的替代方案。

新版的PHP 中引入了 PASSWORD_ARGON2I 常數,現在可以在 password_* 系列函數中使用:

password_hash('password', PASSWORD_ARGON2I);
登入後複製

與只使用一個cost 因子的Bcrypt 不同, Argon2 使用三個cost 因子區分如下:

 定義哈希計算期間應該消耗的KiB數量的記憶體開銷(預設值為1

#定義哈希演算法迭代次數的時間開銷(預設值為2)

並行因子,用於設定哈希計算時使用的平行執行緒數(預設值為2)

以下三個新常數定義了默認的cost 因子:

  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST

  •  PASSWORD_ARGON2_DEFAULT_TIME_COST

  • PASSWORD_ARGON2_DEFAULT_THREADS

但為什麼猿姐這次要來討論PHP7呢?

因為猿姐之前收到一個巨大的消息

還有兩個月停止PHP 5.6 安全支援!

根據 PHP 官方網站列出的支援版本及時刻表(如下),PHP 5.6 安全支援將於2018年12月31日終止。即兩個半月後,使用 PHP 5.6 版本的網站將不再收到安全漏洞或錯誤更新。

Paragon Initiative Enterprise的首席開發長Scott Arciszewski 在接受採訪時表示,

對PHP生態系統來說,這是一個巨大的問題。許多人認為他們可以'僥倖'在2019年繼續運行PHP 5,而這其實是一種安全工作上的刻意疏忽。

你不得不知道的php7小知識

事實上,PHP 5.6 的主要及安全更新期早就結束,但因使用的網站較多,因此,PHP 維護組織曾一度分別延長其支援時間。有些人將這種情況描述為 PHP 風險。較新的 PHP 7.0 將不再在2018年12月1日的 EOL(生命週期結束)提供安全支援。即便是版本 PHP 7.1 也將於2018年12月1日終止。一年後結束安全支援。

目前三大網站內容管理系統(CMS)專案中,只有 Drupal 宣布從2019年3月6日起,Drupal 支援網頁最低要求 PHP 7,建議使用 7.1 版。 Joomla 建議使用 5.6 或更高版本,支援下限為 5.3.10。 Wordpress 建議使用 PHP 7.2 或更高版本,最低支援 5.2.4。

根據ZDNet 報告,WordFence 安全組件研發主管Sean Murphy 表示,PHP 漏洞利用的主要目標不是在PHP 本身,而是在PHP 庫和CMS 系統中,但其他安全專家認為,等截止日期到來,駭客就會積極利用PHP 5.6 的漏洞的。

PHP漏洞攻擊者主要目標不是在PHP本身,而是在PHP函式庫及CMS系統,在兩個月大限到來,駭客會更積極在PHP 5.6以前版本中找出漏洞。自家網站一不小心被掛馬,網站則淪為色情與賭博站,形像大跌!

推薦學習:php影片教學

以上是你不得不知道的php7小知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

php7.0怎麼安裝mongo擴展 php7.0怎麼安裝mongo擴展 Nov 21, 2022 am 10:25 AM

php7.0安裝mongo擴充的方法:1、建立mongodb使用者群組和使用者;2、下載mongodb原始碼包,並將原始碼包放到“/usr/local/src/”目錄下;3、進入“src/”目錄;4、解壓縮原始碼包;5、建立mongodb檔案目錄;6、將檔案複製到「mongodb/」目錄;7、建立mongodb設定檔並修改設定即可。

php7檢測tcp埠不好用怎麼解決 php7檢測tcp埠不好用怎麼解決 Mar 22, 2023 am 09:30 AM

在php5中,我們可以使用fsockopen()函數來偵測TCP埠。這個函數可以用來開啟一個網路連接和進行一些網路通訊。但是在php7中,fsockopen()函數可能會遇到一些問題,例如無法開啟連接埠、無法連接到伺服器等。為了解決這個問題,我們可以使用socket_create()函數和socket_connect()函數來偵測TCP埠。

php7.0安裝了插件還是顯示未安裝怎麼辦 php7.0安裝了插件還是顯示未安裝怎麼辦 Apr 02, 2024 pm 07:39 PM

解決 PHP 7.0 中插件未顯示已安裝問題的方法:檢查插件配置並啟用插件。重新啟動 PHP 以套用配置變更。檢查插件檔案權限,確保其正確。安裝遺失的依賴項,以確保插件正常運作。如果其他步驟都失敗,則重建 PHP。其他可能原因包括外掛程式版本不相容、載入錯誤版本或 PHP 配置問題。

PHP 伺服器環境常見問題指南:快速解決常見難題 PHP 伺服器環境常見問題指南:快速解決常見難題 Apr 09, 2024 pm 01:33 PM

PHP伺服器環境常見的解決方法包括:確保已安裝正確的PHP版本和已複製相關檔案到模組目錄。暫時或永久停用SELinux。檢查並配置PHP.ini,確保已新增必要的擴充功能和進行正確設定。啟動或重新啟動PHP-FPM服務。檢查DNS設定是否有解析問題。

php7.0怎麼安裝部署 php7.0怎麼安裝部署 Nov 30, 2022 am 09:56 AM

php7.0安裝部署的方法:1、到PHP官網下載與本機系統對應的安裝版本;2、將下載的zip檔案解壓縮到指定目錄;3、開啟命令列窗口,在「E:\php7」目錄下運行“php -v”命令即可。

如何在系統重啟後自動設置unixsocket的權限? 如何在系統重啟後自動設置unixsocket的權限? Mar 31, 2025 pm 11:54 PM

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

在Docker環境中使用PECL安裝擴展時為什麼會報錯?如何解決? 在Docker環境中使用PECL安裝擴展時為什麼會報錯?如何解決? Apr 01, 2025 pm 03:06 PM

在Docker環境中使用PECL安裝擴展時報錯的原因及解決方法在使用Docker環境時,我們常常會遇到一些令人頭疼的問�...

php8和php7哪個好 php8和php7哪個好 Nov 16, 2023 pm 03:09 PM

PHP8相較於PHP7在效能、新特性和語法改進、型別系統、錯誤處理和擴充等方面都有一些優勢和改進。然而,選擇使用哪個版本要根據特定的需求和專案情況來決定。詳細介紹:1、效能提升,PHP8引進了Just-in-Time(JIT)編譯器,可以提高程式碼的執行速度;2、新特性和語法改進,PHP8支援命名參數和可選參數的聲明,使得函數呼叫更加靈活;引入了匿名類別、屬性的類型聲明等等。

See all articles