问题与&& PHP中if条件的运算符?

时间:2013-08-27 10:43:40

标签: php

如果PHP code.i正在使用&&运算符验证图像高度和宽度的条件,但它只检查第一个条件。

list($width, $height) = getimagesize('abc.jpg');

     if($width < 400 && $height < 200){

//做点什么         }

 but it only validate the image width.

任何提示??

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

它应该像这样工作:

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()函数都会返回一个包含两个以上组件的数组,因此无效。

希望有所帮助:)