Я извлекаю XML-файл и выполняю различные операции с данными. Я присвоил элемент (у которого нет данных) переменной и проверил, пуста ли переменная. Тест был ложным. Не знаю почему, я проверил элемент напрямую, и он прошел как истинный. Сбитый с толку этим, я поставил переменную через несколько условий, просто чтобы посмотреть, с чем имею дело. Это поставило меня в тупик, так как результаты кажутся мне совершенно непоследовательными. Код, который я пропустил, выглядит следующим образом:
$xmldata = simplexml_load_file('data.xml');
$picture = $person->picturefile; <--picturefile is empty
if (!empty($person->picturefile)) {
echo "picture is not empty";
} else {
echo "picture is empty";
}
if (!empty($picture)) {
echo "picture is not empty";
} else {
echo "picture is empty";
}
$tempfile = "members/$picture";
if (file_exists($tempfile)) {
echo "<div class=mgridimg><img src=$tempfile></div>";
}
Проверка пути xml дает ложное условие (картинка пуста), но проверка переменной дает истинное условие (картинка не пуста).
Я проверил переменную через проверку strlen, и она показала strlen = 0 .
Из файла xml $picture при заполнении имеет имя файла. Как ни странно, хотя $picture пуста, проверка file_exists проходит как истинная. Я также проверил, что в приведенном выше тесте $tempfile содержит значение «members/». Я не могу понять пустой тест переменной или тест file_exists. Я могу кодировать это, но мне интересно, почему я вижу то, что вижу. Любое понимание ценится.