搜尋
首頁後端開發PHP7php7新增的兩個運算子:'?->”和'??”

php7新增的兩個運算子:'?->”和'??”

Mar 21, 2023 pm 03:49 PM
phpphp7操作符

在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 : &#39;default value&#39;;
?>

在PHP7中,我們可以使用??運算子來取代上面的程式碼。如果$variable已經定義,那麼$variable將被賦值給$result,否則$result將被賦值為預設值。

<?php
$variable = null;
$result = $variable ?? "default value";
?>

在上面的程式碼中,$result將被設定為"default value",因為$variable是null。

總結

這兩個新運算子可以非常有效地避免Undefined variable的錯誤,並且使我們的程式碼更加清晰和易於維護。在使用它們時,我們只需要注意它們的用法和限制。

以上是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脫衣器

Video Face Swap

Video Face Swap

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

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

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

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應用伺服器整合。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能