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
}
为什么需要检查这两个条件?只使用第一个子句还不够吗?
Isn't using just the first clause enough?
编辑 当我输入这个答案时,我看到你问题的上下文发生了变化。我认为 aynber 的评论回答了你的问题。
isset
实际上只是在下一个操作尝试访问它之前检查数组键 buyer_tracking_address_id 是否存在。如果它不存在,isset 将 return 为 false 并阻止 运行.
的下一个条件
没有 isset
,如果您尝试访问数组键 buyer_tracking_address_id 但它不存在,PHP 会抛出一个警告。
Warning: Undefined array key "buyer_tracking_address_id"
以下代码将抛出 a notice in PHP 7, and a warning in PHP 8.
<?php
$purchase_data = [
'buyer_tracking_address_id' => '12345'
];
if ($purchase_data['doesnt_exist']) {
// do something
}
也值得阅读和理解,因为它们通常用于访问未知的数组键。
我今天在我的代码库中看到了这个:
if (isset($purchase_data['buyer_tracking_address_id']) && $purchase_data['buyer_tracking_address_id']) {
// do something
}
为什么需要检查这两个条件?只使用第一个子句还不够吗?
Isn't using just the first clause enough?
编辑 当我输入这个答案时,我看到你问题的上下文发生了变化。我认为 aynber 的评论回答了你的问题。
isset
实际上只是在下一个操作尝试访问它之前检查数组键 buyer_tracking_address_id 是否存在。如果它不存在,isset 将 return 为 false 并阻止 运行.
没有 isset
,如果您尝试访问数组键 buyer_tracking_address_id 但它不存在,PHP 会抛出一个警告。
Warning: Undefined array key "buyer_tracking_address_id"
以下代码将抛出 a notice in PHP 7, and a warning in PHP 8.
<?php
$purchase_data = [
'buyer_tracking_address_id' => '12345'
];
if ($purchase_data['doesnt_exist']) {
// do something
}
也值得阅读和理解