簡體   English   中英

PHP - 使用 isSet() 並檢查真值有什么意義?

[英]PHP - what is the point of using isSet() and checking for truthy value?

我今天在我的代碼庫中看到了這一點:

if (isset($purchase_data['buyer_tracking_address_id']) && $purchase_data['buyer_tracking_address_id']) {
    // do something
}

為什么需要同時檢查這兩個條件? 僅使用第一個子句還不夠嗎?

僅使用第一個子句還不夠嗎?

編輯我看到你的問題的上下文在我輸入這個答案時發生了變化。 我認為 aynber 的評論回答了您的問題。


isset實際上只是在下一個操作嘗試訪問它之前檢查數組鍵buyer_tracking_address_id是否存在。 如果它不存在, isset將返回 false 並阻止下一個條件運行。

如果沒有isset ,如果您嘗試訪問數組鍵buyer_tracking_address_id並且它不存在,PHP 會發出警告。

警告:未定義的數組鍵“buyer_tracking_address_id”

以下代碼將在 PHP 7 中引發通知, 在 PHP 8 中引發警告

<?php

$purchase_data = [
    'buyer_tracking_address_id' => '12345'    
];

if ($purchase_data['doesnt_exist']) {
    // do something
}

閱讀和理解三元運算符空合並運算符也很值得,因為它們通常用於訪問未知的數組鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM