Isset returns 未定义索引虽然已设置
Isset returns undefined index although it is set
我有一个奇怪的问题。我调用了一个自写函数,它 returns 我的 SQL 结果。
$isBusinessAddress = PartnernetShop::invoiceAddressIsBusinessAddress($userID)->toArray();
我想获取第一个数组的 meta_value 因为这是我需要的返回值。出于安全原因,我检查索引和值是否存在:
if(isset($isBusinessAddress[0]["meta_value"])){ ... }
这个 if 语句 returns:
Undefined index: meta_value
但是,如果我只检查上面 2-3 行的值,它就可以工作!
var_dump($isBusinessAddress);
var_dump(isset($isBusinessAddress[0]["meta_value"]));
var_dump(array_key_exists("meta_value", $isBusinessAddress[0]));
var_dump($isBusinessAddress[0]["meta_value"]);
输出:
array(1) {
[0]=>
array(2) {
["user_id"]=>
int(12)
["meta_value"]=>
string(4) "Nein"
}
}
bool(true)
bool(true)
string(4) "Nein"
这是我的代码:
$isBusinessAddress = PartnernetShop::invoiceAddressIsBusinessAddress($userID)->toArray();
var_dump($isBusinessAddress);
var_dump(isset($isBusinessAddress[0]["meta_value"]));
var_dump(array_key_exists("meta_value", $isBusinessAddress[0]));
var_dump($isBusinessAddress[0]["meta_value"]);
//die();
if(isset($isBusinessAddress[0]["meta_value"])){
$isBusinessAddress = [0]["meta_value"];
}else{
$isBusinessAddress = "NotSet";
}
你们能告诉我我做错了什么吗?我已经多次使用这个 if 语句...
更新:
索引肯定存在,因为我通过了 if 语句。我刚在尝试将值分配给变量的行上收到消息 "Undefined index: meta_value"!下一行:
$isBusinessAddress = [0]["meta_value"];
谨致问候,谢谢!
问题不在于 isset(),而在于之后的行:
$isBusinessAddress = [0]["meta_value"];
尝试从数组 [0]
(resp. array(0 => 0)
)中获取键 meta_value
,但此键不存在。
我有一个奇怪的问题。我调用了一个自写函数,它 returns 我的 SQL 结果。
$isBusinessAddress = PartnernetShop::invoiceAddressIsBusinessAddress($userID)->toArray();
我想获取第一个数组的 meta_value 因为这是我需要的返回值。出于安全原因,我检查索引和值是否存在:
if(isset($isBusinessAddress[0]["meta_value"])){ ... }
这个 if 语句 returns:
Undefined index: meta_value
但是,如果我只检查上面 2-3 行的值,它就可以工作!
var_dump($isBusinessAddress);
var_dump(isset($isBusinessAddress[0]["meta_value"]));
var_dump(array_key_exists("meta_value", $isBusinessAddress[0]));
var_dump($isBusinessAddress[0]["meta_value"]);
输出:
array(1) {
[0]=>
array(2) {
["user_id"]=>
int(12)
["meta_value"]=>
string(4) "Nein"
}
}
bool(true)
bool(true)
string(4) "Nein"
这是我的代码:
$isBusinessAddress = PartnernetShop::invoiceAddressIsBusinessAddress($userID)->toArray();
var_dump($isBusinessAddress);
var_dump(isset($isBusinessAddress[0]["meta_value"]));
var_dump(array_key_exists("meta_value", $isBusinessAddress[0]));
var_dump($isBusinessAddress[0]["meta_value"]);
//die();
if(isset($isBusinessAddress[0]["meta_value"])){
$isBusinessAddress = [0]["meta_value"];
}else{
$isBusinessAddress = "NotSet";
}
你们能告诉我我做错了什么吗?我已经多次使用这个 if 语句...
更新: 索引肯定存在,因为我通过了 if 语句。我刚在尝试将值分配给变量的行上收到消息 "Undefined index: meta_value"!下一行:
$isBusinessAddress = [0]["meta_value"];
谨致问候,谢谢!
问题不在于 isset(),而在于之后的行:
$isBusinessAddress = [0]["meta_value"];
尝试从数组 [0]
(resp. array(0 => 0)
)中获取键 meta_value
,但此键不存在。