Php 在if语句中返回变量-是否可以多次尝试?

Php 在if语句中返回变量-是否可以多次尝试?,php,variables,if-statement,return,Php,Variables,If Statement,Return,我不确定我是否正确地定义了这一点,但我认为以下代码将是非常自我解释的: function a($p){ if($p===true){ return 'yep'; } else{ return false; } } if($test=a(true)){ echo $test; // this will echo out 'yep' } 上述代码按预期工作。我试图实现的是这样的目标: function a($p){

我不确定我是否正确地定义了这一点,但我认为以下代码将是非常自我解释的:

function a($p){
    if($p===true){
        return 'yep';
    }
    else{
        return false;
    }
}

if($test=a(true)){
    echo $test; // this will echo out 'yep'
}
上述代码按预期工作。我试图实现的是这样的目标:

function a($p){
    if($p===true){
        return 'yep';
    }
    else{
        return false;
    }
}

if($test=a(false)||$test=a(true)){
    var_dump($test); // this will show $test being bool(true) NOT yep
}
不做中间功能,这是可能的吗

我也尝试过:

if($test=(a(false)||a(true)){ ... }
无济于事

$test = a(false) || $test = a(true)
将被评估为

$test = ( a(false) || $test=a(true) )
逻辑运算符始终返回布尔值,因此
|
表达式的结果将被分配给
$test

如果您希望上面的表达式将字符串赋值给
$test
,那么您必须使用
,它有一个接赋值运算符(在本上下文中我更喜欢这种方式):

或者正确设置括号:

($test = a(false)) || ($test = a(true))
将被评估为

$test = ( a(false) || $test=a(true) )
逻辑运算符始终返回布尔值,因此
|
表达式的结果将被分配给
$test

如果您希望上面的表达式将字符串赋值给
$test
,那么您必须使用
,它有一个接赋值运算符(在本上下文中我更喜欢这种方式):

或者正确设置括号:

($test = a(false)) || ($test = a(true))

令人沮丧的是,我在接下来的10分钟内都不能投票认为这个答案是正确的。解决了的!谢谢令人沮丧的是,我在接下来的10分钟内都不能投票认为这个答案是正确的。解决了的!谢谢