gpt4 book ai didi

php - 是否可以使用一个三元运算符设置多个变量?

转载 作者:行者123 更新时间:2023-12-02 05:45:58 25 4
gpt4 key购买 nike

我想看看是否可以用一个三元运算符设置多个变量。我谷歌了一点,但没有想出任何东西。我开始测试一些想法,发现了一些接近的东西——但也出现了一些奇怪的行为;关于发生了什么的任何想法?并且,是否可以设置多个 var在单个三元操作中?如果是这样,是否有适当的方法?

$i=9;
($i==9)?($w=3|$r=2):($w=7|$r=1);
echo 'w= '.$w.' r= '.$r;//w= 3 r= 2


$i=9;
($i==9)?($w=4|$r=2):($w=7|$r=1);
echo 'w= '.$w.' r= '.$r;//w= 6 r= 2


$i=9;
($i==9)?($w=3|$r=7):($w=7|$r=1);
echo 'w= '.$w.' r= '.$r;//w= 7 r= 7


$i=444;
($i==9)?($w=4|$r=2):($w=7|$r=1);
echo 'w= '.$w.' r= '.$r;//w= 7 r= 1


$i=444;
($i==9)?($w=4|$r=2):($w=1|$r=1);
echo 'w= '.$w.' r= '.$r;//w= 1 r= 1

谢谢...

编辑:

我做了更多的测试,发现这可以正常工作:
    ($i==9)?($w=4 AND $r=7):($w=7 AND $r=1);

但是,我不确定这是否正确。我很好奇第一个例子中发生了什么。

最佳答案

正如查德威克所解释的,使用 ANDOR逻辑运算符不会按照您希望的方式工作:

$i = 0; $w = 0; $r = 0;
($i==9) ? ($w=4 AND $r=7) : ($w=7 AND $r=1);
echo "w = $w, r = $r\n";
// w = 7, r = 1

$i = 0; $w = 0; $r = 0;
($i==9) ? ($w=0 AND $r=7) : ($w=0 AND $r=1);
echo "w = $w, r = $r\n";
// w = 0, r = 0

但是,如果你真的想在一个语句中进行多个赋值,你可以使用 list 构造:
$i = 0; $w = 0; $r = 0;
($i==9) ?
(list($w, $r) = array(4, 7)) :
(list($w, $r) = array(7, 1));
echo "w = $w, r = $r\n";
// w = 7, r = 1

$i = 0; $w = 0; $r = 0;
($i==9) ?
(list($w, $r) = array(0, 7)) :
(list($w, $r) = array(0, 1));
echo "w = $w, r = $r\n";
// w = 0, r = 1

关于php - 是否可以使用一个三元运算符设置多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3259962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com