PHP使用as变量的结果

时间:2016-11-22 13:38:42

标签: php function if-statement

是否可以使用带有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)
}

所以我需要检测哪个变量是真的并将其作为参数传递。这甚至可能吗?

感谢任何帮助!

非常感谢提前

2 个答案:

答案 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和参数解包。