如何在PHP已定义function的调用参数中添加if statement逻辑
问题原因与正确实现
- 原有代码的两个错误点:
- PHP 函数参数位置仅支持传入表达式,不允许直接写
if控制结构 - 字符串
Hello,未加引号,属于语法错误
- PHP 函数参数位置仅支持传入表达式,不允许直接写
- 最简单的实现方案是使用三元运算符(属于表达式,可直接放在参数位),代码示例如下:
<?php $a = 1; function writeMsg($x) { echo $x; } // 三元运算符拼接字符串后直接传入函数 writeMsg("Hello, " . ($a == 1 ? "men" : "women")); ?>
- 如果你后续需要处理更复杂的多分支判断逻辑,无法用三元运算符简化,可以先把要传入的参数值提前计算好存到变量中,再传入函数即可,示例如下:
<?php $a = 1; function writeMsg($x) { echo $x; } // 提前计算参数值 $content = "Hello, "; if ($a == 1) { $content .= "men"; } elseif ($a == 2) { $content .= "women"; } else { $content .= "visitor"; } writeMsg($content); ?>
内容的提问来源于stack exchange,提问作者Brap
相关产品推荐
相关产品推荐

