Пересмотрено :
Что касается логического ANDing в PHP для достижения того же вида результата, что и в JavaScript, вы можете использовать вариант традиционной троичной формы, как показано ниже:
<?php
// prelim
$object = new stdClass;
$object->field = 10;
$param = new stdClass;
$param->object = $object;
// ternary variant
$field = !($param && $param->object)?: $param->object->field;
echo $field,"\n";
// alternative to ANDing
$field = get_object_vars( $param->object )["field"] ?? null;
echo $field,"\n";
См. действующий код
Оператор "Elvis" "?:" Присваивает результат полю $ только если условное выражение ложно.Таким образом, если $ param существует так же, как и $ param-> object, вам нужно использовать оператор NOT ("!"), Чтобы получить желаемый результат.
Вы также можете выполнить задачу получения полевых данных без ANDing, используя оператор объединения нулей ("??") в PHP 7 в тандеме с get_object_vars()
.