if 语句中返回变量 - 可以多次尝试吗?
我不确定我的术语是否正确,但我认为下面的代码将是非常自我解释的:
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)){ ... }
无济于事。
i am unsure weather i am terming this correctly, but i think the following code will be pretty self explaintory:
function a($p){
if($p===true){
return 'yep';
}
else{
return false;
}
}
if($test=a(true)){
echo $test; // this will echo out 'yep'
}
the above code works as expected. what i am trying to accomplish is something like this:
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
}
is this possible without doing an intermediate function?
i have also tried:
if($test=(a(false)||a(true)){ ... }
to no avail.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将被评估为
逻辑运算符始终返回布尔值,因此
||
表达式的结果将分配给$test
。如果您希望上面的表达式将字符串分配给
$test
,那么您可以使用or
,它具有 优先级较低 然后是赋值运算符(在这种情况下我更喜欢这种方式):DEMO
或者你正确设置了括号:
will be evaluated as
Logical operators always return a boolean value, so the result of the
||
expression will be assigned to$test
.If you want that the expressions above assigns the string to
$test
, then you have useor
which has a lower precedence then the assignment operator ( I would prefer this way in this context):DEMO
Or you set the parenthesis correctly: