在PHP7發布以後,大家發現一個重要的改變是它增強了強型別檢查。這個變化是非常有益的,因為它可以幫助我們避免許多錯誤,例如在變數沒有被定義之前引用它。
在先前的PHP版本中,如果我們沒有定義一個變量,直接使用它會導致Undefined variable
的錯誤。但是,在PHP7中,我們可以使用一些新功能來避免這個問題的發生。
這些新功能包括兩個新的運算符,分別是:?->
和??
。它們可以分別解決兩種不同類型的問題。
?->運算子
在先前的PHP版本中,我們可以透過使用isset函數來判斷一個變數是否已定義。但是,這只適用於單一變數的情況。如果我們需要檢查一個物件的屬性是否已定義,那麼就需要使用一些複雜的程式碼來完成這個任務。
在PHP7中,我們可以使用?->運算子來檢查一個物件的屬性是否已定義。這個運算元只在屬性的接收者是null、false或未定義的變數時傳回null,否則傳回屬性的值。透過這種方法,我們可以避免在屬性沒有被定義之前使用它,從而避免Undefined variable的錯誤。
<?php $obj = null; $value = $obj?->property; ?>
在上面的程式碼中,如果$obj是null,那麼$value將被設定為null,否則$value將被設定為$obj的property屬性的值。
??運算子
另外一個非常有用的新功能是??運算子。這個操作符可以用來檢查一個變數是否已定義,如果沒有定義就設定一個預設值。
在先前的PHP版本中,我們通常會使用三元運算元來完成這個任務:
<?php $variable = isset($variable) ? $variable : 'default value'; ?>
在PHP7中,我們可以使用??運算子來取代上面的程式碼。如果$variable已經定義,那麼$variable將被賦值給$result,否則$result將被賦值為預設值。
<?php $variable = null; $result = $variable ?? "default value"; ?>
在上面的程式碼中,$result將被設定為"default value",因為$variable是null。
總結
這兩個新運算子可以非常有效地避免Undefined variable
的錯誤,並且使我們的程式碼更加清晰和易於維護。在使用它們時,我們只需要注意它們的用法和限制。
以上是php7新增的兩個運算子:'?->”和'??”的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

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

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

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能