Я использую SOAP для получения некоторых данных из другого сервиса, я получаю XML, конвертирую и отображаю его с помощью PHP. Дело в том, что иногда в XML-файле для него нет значения, и я не знаю, как отобразить какое-то сообщение типа «Эта вещь не была установлена», вместо этого я просто получаю уведомление с
Примечание: преобразование массива в строку в \ data2.php в строке 636
массив
Что я попробовал:
if(isset($claim ['vehicle']['engine-cc']))
echo var_dump($claim ['vehicle']['engine-cc']);
вывод: массив (0) {}
После этого я пытаюсь что-то вроде:
if(isset($claim ['vehicle']['engine-cc']))
echo var_dump(isset($claim ['vehicle']['engine-cc']));
Вывод: bool (true)
Так что, похоже, я все делаю плохо, можешь дать мне совет, как мне это исправить?
постскриптум Я знаю, что могу перестать отображать ошибки и уведомления, но это не так, как я хочу «исправить» это
вам не нужно echo
после var_dump
уже есть var_dump
(используется для печати массива) или может быть, у вас нет массива для $claim ['vehicle']['engine-cc']
это строка
var_dump($claim ['vehicle']['engine-cc']); // for array
echo $claim ['vehicle']['engine-cc'] // for string
возвращение bool (правда), потому что у вас есть isset()
(вернет логическое значение true / false)
var_dump(isset($claim ['vehicle']['engine-cc']));
Для печати значений массива вам нужно только: —
var_dump($claim ['vehicle']['engine-cc']); or var_dump($claim);
вернет вам полный вывод массива
для любой проверки пустые значения попробуйте
if(!empty($claim ['vehicle']['engine-cc']))
var_dump($claim ['vehicle']['engine-cc']);
Вы можете сделать это, просто повторив сообщение.
`if (! isset ($ demand [‘vehicle’] [‘engine-cc’]))
echo ‘engine-cc — эта вещь не была установлена’; `
Вам, скорее всего, нужно использовать опцию «SOAP_SINGLE_ELEMENT_ARRAYS».
По умолчанию SOAP возвращает пустое или одно значение атрибута SOAP в виде строки, а не массива. Добавление опции SOAP_SINGLE_ELEMENT_ARRAYS в запрос клиента SOAP заставит возвращать значение в виде пустой ARRAY, а не пустой строки. Увидеть пример здесь.