Проверить значение null и выполнить ту или иную строку

#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, да, это правда. Спасибо