PHP检查是否为非空、非零

PHP检查是否为非空、非零,php,Php,我使用getimagesize函数获得图像的宽度和高度,如下所示: list($width,$height) = getimagesize($source_pic); 如何使用IF条件检查执行的getimagesize函数是否没有错误,以及$width和$height是否得到了非空、非零值 if ($width === NULL) { //handle error } 如果出现错误getimagesize返回FALSE,而不是数组,那么列表赋值将导致变量为NULL,这就足够了: if

我使用getimagesize函数获得图像的宽度和高度,如下所示:

list($width,$height) = getimagesize($source_pic);
如何使用IF条件检查执行的getimagesize函数是否没有错误,以及$width和$height是否得到了非空、非零值

if ($width === NULL) {
    //handle error
}
如果出现错误
getimagesize
返回
FALSE
,而不是数组,那么
列表
赋值将导致变量为
NULL
,这就足够了:

if ($size = getimagesize($source_pic)) {
    list($width,$height) = $size;
    if($height > 0 && $width > 0) {
        // do stuff
    }
}
list($width, $height) = getimagesize($source_pic);
if( $width>0 && $height>0 ){
    // Valid image with known size
}
如果它不是有效图像,$width和$height都将
NULL
。如果它是一个有效的图像,但PHP无法确定它的维度,那么它们将是
0

注:

某些格式可能不包含图像或图像 可能包含多个图像。在这些 在某些情况下,getimagesize()可能不是 能够正确地确定图像 尺寸。getimagesize()将返回零 这些情况下的宽度和高度


请注意,此答案不符合所有问题的要求。特别是,它不会检测到零值。您仍然需要针对零值进行测试。根据手册,在某些情况下,您可以获得这样的值。
$size = getimagesize('image.jpg');
list($height,$width) = getimagesize('image.jpg');

if($height>0 && $width>0){
   //it comes into if block if and only if both are not null
}