#php #operators #ternary
#php #операторы #троичный
Вопрос:
У меня есть этот код:
$red = "value";
$resp = (($red amp;amp; get("aaa")) ?: getb("aaa"));
print $resp;
function get($aaa)
{
return "aaa";
}
function getb($aaa)
{
return $aaa . "bbb";
}
Но в этом случае $red amp;amp; get("aaa")
код присваивается $resp
, но вместо этого я хочу, чтобы, если $red
значение не равно null, выполнялось get("aaa")
, и если get("aaa")
возвращает false, оно выполняется getb("aaa")
.
Код работает нормально, когда $red
имеет значение null или get("aaa")
false , но когда в этом случае возвращается значение true .
Есть ли способ сделать это в одной строке кода, подобной этой? Или я должен использовать ifs?
Комментарии:
1. Проверьте эту игровую площадку , она должна охватывать все ваши случаи.
2. Хотя я бы использовал
if
s. Вложенные операторы, подобные этому, довольно сложно читать и поддерживать практически без выгоды (кроме нескольких строк кода).3. Спасибо @DigitalDrifter это очень помогло.
4. @Jeto, да, это правда. Спасибо