在PHP中使用三元运算符

Red*_*Red 3 php

我是PHP的新手并且正在尝试学习.

避免使用临时变量是否可行?

<?php

    function get_name()
    {
        // assume that this function return 3 
        // values on different conditions "name0" "name1" or "name2";
    }

    $result =  ( get_name() == "name0" || get_name() == "name1") ? "Primary" : "Secondary" ;
    echo $result;

?>
Run Code Online (Sandbox Code Playgroud)

在上面我调用了get_name()两次函数,这意味着两次调用同一个函数.

是否可以通过一次调用实现相同而不将其保存到临时变量中?

什么是常用的做法?

更新:我编辑的问题更具体.几乎所有的答案都令人满意,希望这个更新能为新读者提供帮助.

Joc*_*lyn 10

我会这样做:

$result =  in_array(get_value(), array(0, NULL), true) ? "Zero" : "One" ;
Run Code Online (Sandbox Code Playgroud)

文档:in_array


awm*_*awm 7

这个怎么样?

$result = get_value() ? "One" : "Zero";
Run Code Online (Sandbox Code Playgroud)

这导致get_value()被强制转换为布尔值. null并且0成为false1true.