PHP - 使用 isSet() 并检查真值有什么意义?

问题描述 投票:0回答:1

我今天在我的代码库中看到了这个:

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

为什么需要检查这两个条件?仅使用第一个子句还不够吗?

php if-statement isset
1个回答
0
投票

仅使用第一个子句还不够吗?

编辑 当我输入此答案时,我发现您问题的上下文发生了变化。我认为 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
}

也值得阅读和理解三元运算符空合并运算符,因为它们经常用于访问未知的数组键。

© www.soinside.com 2019 - 2024. All rights reserved.