在php中查找较小的值并交换值
$var1 = 22; $var2 = 10; 回声 $var1 = ($var1 < $var2) ? $var1 : $var2; //较小的变量 回显'
'; 回声 $var2 = ($var1 > $var2) ? $var1 : $var2; //greater var
我希望它打印 10 和 22
但它打印 10 和 10
。有什么想法我做错了吗?
谢谢
更新 谢谢大家。
$min = min($var1, $var2);
$max = max($var1, $var2);
$var1 = $min;
$var2 = $max;
$var1 = 22;
$var2 = 10;
echo $var1 = ($var1 < $var2) ? $var1 : $var2; //smaller var
echo '
';
echo $var2 = ($var1 > $var2) ? $var1 : $var2; //greater var
I expect it to print 10 and 22
but it prints 10 and 10
. any ideas what I am doing wrong?
Thanks
UPDATE
Thanks all.
$min = min($var1, $var2);
$max = max($var1, $var2);
$var1 = $min;
$var2 = $max;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
@unicornaddict 已经解决了您的问题,但为了使其更简单,您可以使用
min
PHP 提供的max
函数。@unicornaddict already solved your problem, but to make it simpler you can use the
min
andmax
functions PHP provides.您正在重新分配
echo
中的变量。你想要什么:
编辑:
如果你总是想要
$var1
中两个值中较小的一个,你可以这样做:You are re-assigning the variables in the
echo
.What you want it:
EDIT:
If you always want the smaller of the two values in
$var1
you can do:您在第一次比较中覆盖 $var1。所以第二个比较比较 10 > 10.
You overwrite $var1 in your first comparison. So the second comparison compares 10 > 10.
你在第一个 echo 中将 10 分配给 $var1 ,所以在第二个 echo 中它们都是 10 。
you assign 10 to $var1 with the first echo, so at the second they are both 10.
这会将 10 分配给
$var1
。现在两个变量都包含 10。那么您对第二行有何期望?This assigns 10 to
$var1
. Now both variables contain 10. So what do you expect of the second line?你需要一个临时变量。只需使用分钟,
You need a temporary variable. Just use min,
您的问题还提到交换值,其他答案似乎没有注意到这一点。鉴于您的示例代码,您似乎希望
$var1
包含两个值中较小的一个,而$var2
包含较大的值。Your question also mentions swapping the values, which the other answers don't seem to make any note of. Given your example code it looks like you want
$var1
to contain the smaller of the two values and$var2
the bigger.