Php 将if语句放在echo中

Php 将if语句放在echo中,php,Php,我有一行代码如下所示: echo "Slope intercept form: $$"."y = ".toFraction($slope)."x + $b"."$$"; echo "Slope intercept form: $$"."y = ".if(strpos($number,".") !== false){toFraction($slope)}else{$slope}."x + $b"."$$"; 但是,我想添加一个if语句,检查数字是否为十进制,以运行函数“toFraction”。

我有一行代码如下所示:

echo "Slope intercept form: $$"."y = ".toFraction($slope)."x + $b"."$$";
echo "Slope intercept form: $$"."y = ".if(strpos($number,".") !== false){toFraction($slope)}else{$slope}."x + $b"."$$";
但是,我想添加一个if语句,检查数字是否为十进制,以运行函数“toFraction”。如果它不是一个分数,我希望它只回显$slope变量而不带函数。换句话说,类似这样的事情:

echo "Slope intercept form: $$"."y = ".toFraction($slope)."x + $b"."$$";
echo "Slope intercept form: $$"."y = ".if(strpos($number,".") !== false){toFraction($slope)}else{$slope}."x + $b"."$$";
但是,我甚至不确定这是否可能,或者如果可能,正确的方法是什么?

使用


使用语法错误您可以使用带
的内联if:

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的语法模式如下:
条件
真实路径
错误路径
请记住两条简单规则:

  • 尽量垂直书写,不要水平书写。长语句要么不可读,要么晦涩难懂
  • 三元运算符很难看
  • 所以


    不,不可能。语句不能是表达式的一部分(字符串连接)。这里一个可行的替代方法可能是“三元运算符”。它不是echo,而是您正在谈论的字符串。
    echo "Slope intercept form: $$"."y = ";
    if(strpos($number,".") !== false) echo toFraction($slope); else echo $slope;
    echo "x + $b"."$$";
    
    if (strpos($number,".") !== false) {
        $slope = toFraction($slope);
    }
    echo 'Slope intercept form: $$y = '.$slope.'x + '.$b.'$$';