concat php变量

时间:2011-10-28 07:51:47

标签: php javascript

当连接php变量结果没有显示时。

$a = 5;
$b = 4;
$o = '+';

echo $a.$o.$b;
result showing 5+4; but i want show result 9 

我怎么能这样做,任何人都可以帮助我。 提前致谢。

6 个答案:

答案 0 :(得分:4)

'+'是一个字符串,所以如果你用数字连接它就会得到一个字符串。你必须调查价值:

if ($o == '+') {
    echo $a + $b;
}

或者您可能想要的东西:

switch ($o) {
    case "+":
        echo $a + $b;
        break;
    case "-":
        echo $a - $b;
        break;
    case "*":
        echo $a * $b;
        break;
    case "/":
        echo $a / $b;
        break;
    default:
        echo 0;
}

答案 1 :(得分:1)

使用“eval()"功能

如: -

echo eval($a.$o.$b)

但要小心,不要在没有验证的情况下“评估”来自网页的任何内容。

答案 2 :(得分:0)

您正在使用字符串“+”进行连接,因此您将获得一个字符串。您想要实际添加数字:

$o = $a + $b;
echo $o;

答案 3 :(得分:0)

concatenate连接字符串。如果你想要正常算术,只需使用加号:

$a = 5;
$b = 4;
echo ($a + $b)

答案 4 :(得分:0)

当你使用concatenate PHP自动设置参数STRING的类型时。你应该写$c=$b+$a; echo $c;

答案 5 :(得分:0)

你可以这样做:

function calc($a, $b, $o) {
    $op = array('+', '-');

    if (in_array($o, $op)) 
        return eval('return '.(int)$a.$o.(int)$b.';');

    return False;
}


$a = 5;
$b = 4;
$o = '+';
var_dump(calc($a, $b, $o));

但这非常难看,你应该重新考虑你的逻辑。