将if语句放在echo中

时间:2013-02-23 20:49:30

标签: php

我有一行代码如下:

echo "Slope intercept form: $$"."y = ".toFraction($slope)."x + $b"."$$";

但是,我想添加一个if语句来检查数字是否为小数,以运行函数“toFraction”。如果它不是一个分数,我希望它只是在没有函数的情况下回显$ slope变量。换句话说,就像这样:

echo "Slope intercept form: $$"."y = ".if(strpos($number,".") !== false){toFraction($slope)}else{$slope}."x + $b"."$$";

但是,我不确定这是否可能,或者是否是,实现它的正确方法是什么?

5 个答案:

答案 0 :(得分:1)

语法错误,如果使用?:,则可以使用内联:

echo "Slope intercept form: $$"."y = ".(strpos($number,".") !== false ? toFraction($slope) : $slope) . "x + $b"."$$";

或尝试这种语法:

echo "Slope intercept form: $$"."y = ";
if(strpos($number,".") !== false) {
    echo toFraction($slope)
} else {
    echo $slope;
}
echo "x + $b"."$$";

内联ifs的语法模式如下所示:( 条件 ? true path : false path )

答案 1 :(得分:0)

使用Ternary Operator

echo "Slope intercept form: $$"."y = ".((strpos($number,".") !== false) ? toFraction($slope): $slope)."x + $b"."$$";

答案 2 :(得分:0)

echo "Slope intercept form: $$"."y = " . ((strpos($number,".") !== false ? toFraction($slope) : $slope) . "x + $b" . "$$");

使用ternary operator

答案 3 :(得分:0)

echo "Slope intercept form: $$"."y = ";
if(strpos($number,".") !== false) echo toFraction($slope); else echo $slope;
echo "x + $b"."$$";

答案 4 :(得分:0)

请记住两条简单的规则:

  1. 尝试垂直书写,而不是水平书写。冗长的陈述要么难以辨认,要么模糊不清。
  2. 三元运营商很难看。
  3. 所以

    if (strpos($number,".") !== false) {
        $slope = toFraction($slope);
    }
    echo 'Slope intercept form: $$y = '.$slope.'x + '.$b.'$$';