我在codeigniter中有一个类似的代码,工作得很好。
<?php if (a>b) echo (a-b); else echo '0'; ?>
问题是,我想添加复合函数。我已经尝试了下面的代码,但它不会工作。我收到一个错误代码:"解析错误:语法错误,意外的'if' (T_IF)">
<?php echo (if (a>b) echo (a-b); else echo '0') + (if (c>d) echo (c-d); else echo '0') + (if (e>f) echo (e-f); else echo '0'); ?>
问题是您不能添加或传递if-else
块作为echo
语句的参数,因为if-else
代码块不是表达式。
要在一行中连接和打印您的值,请使用?:
三元操作符作为
<?php echo ($a > $b ? $a - $b : '0') . ($c > $d ? $c - $d : '0') . ($e > $f ? $e - $f : '0'); ?>
由于您的表达式使用字符串文字'0'
,我假设您想将值连接为字符串。我们使用.
运算符来代替PHP中的+
。
是的,语法有问题。您必须使用三元操作符来做到这一点。以下是PHP三元操作符的语法:
(Condition) ? (Statement1) : (Statement2);
<?php echo ((a > b)?(a - b):0) + ((c > d)?(c - d):0) + ((e > f)?(e - f):0); ?>