是否可以使用带有OR语句的if结果作为函数的变量?
例如:
$a = true;
$b = false;
if ($a || $b) {
$this->functionCall($a)
}
其他例子:
$a = false;
$b = true;
if ($a || $b) {
$this->functionCall($b)
}
第三个也是最后一个例子:
$a = true;
$b = true;
if ($a || $b) {
$this->functionCall($a, $b)
}
所以我需要检测哪个变量是真的并将其作为参数传递。这甚至可能吗?
感谢任何帮助!
非常感谢提前
答案 0 :(得分:3)
如果我是你,我会在双参数函数中执行逻辑位:
function myFunc($a = false, $b = false) {
if ($a == true)
echo 'a';
if ($b == true)
echo 'b';
}
myFunc(); // echoes nothing
$a = true;
$b = false;
myFunc($a, $b); // echoes 'a'
$a = false;
$b = true;
myFunc($a, $b); // echoes 'b'
$a = true;
$b = true;
myFunc($a, $b); // echoes 'ab'
答案 1 :(得分:2)
PHP 5.6+版本,过滤掉错误的值(您可以将回调传递给array_filter进行不同的检查)并使用splat运算符。
$params = array_filter([$a, $b]);
$this->callFunction(...$params);
在IF分配中无需任何IF检查和混淆。
探索Variadic functions和参数解包。