与&&;PHP中if条件中的运算符


Problum with the && operators in if condition in PHP?

我在if条件if PHP代码中遇到问题&操作员来验证图像高度和宽度的两个条件,但它只检查第一个条件。

list($width, $height) = getimagesize('abc.jpg');
     if($width < 400 && $height < 200){

//做点什么}

 but it only validate the image width.

有什么提示吗??

&&运算符是个懒惰的混蛋。如果最左边的操作返回false,则不需要进一步检查。所以,我认为你的图像宽度是400(或更多)像素,这意味着高度自然不会被检查。

它应该这样工作:

if ($info = getimagesize("abc.jpg")) {
    if ($info[0] < 400 && $info[1] < 200) {
        // your code continues here...
    }
}

你也可以用一种更实用的方式写它(索引消失):

if ($info = getimagesize("abc.jpg")) {
    if (current($info) < 400 && next($info) < 200) {
        // your code continues here...
    }
}

在任何情况下,getimagesize()函数都会返回一个包含两个以上组件的数组,因此这是不起作用的。

希望有帮助:)