У меня странная проблема. Я вызываю самописную функцию, которая возвращает мой результат SQL.
$isBusinessAddress = PartnernetShop::invoiceAddressIsBusinessAddress($userID)->toArray();
Я хочу получить meta_value первого массива, потому что это возвращаемое значение, которое мне нужно. Из соображений безопасности я проверяю, выходит ли индекс и значение:
if(isset($isBusinessAddress[0]["meta_value"])){ ... }
Это если оператор возвращает:
Неопределенный индекс: 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";
}
Не могли бы вы, ребята, сказать мне, что я делаю не так? Я использовал это, если заявление уже несколько раз ...
UPDATE:
Индекс определенно существует, потому что я передаю оператор if. Я просто получаю сообщение "Undefined index: meta_value" в строке, пытающейся присвоить значение переменной! Следующая строка:
$isBusinessAddress = [0]["meta_value"];
С уважением и спасибо!