这可能是个愚蠢的问题,但有没有更聪明的方法来验证这一点
<?php $w = 1360; $h = 455; $cw = 1360; $ch = 460; $tol = 10; //px if ((int) $w >= (int) ($cw-$tol) && (int) $w <= (int) ($cw+$tol) && (int) $h >= (int) ($ch-$tol) && (int) $h <= (int) ($ch+$tol)) { echo "you are within the tolerance {$cw}x{$ch}px by +-{$tol} px."; };
所以我基本上只是想确保用户在上传时不会超出这些界限。上面的代码有效,只是想知道我是否可以更聪明一些。该方法在传入这些值时已经知道这些值。
更简洁的方法是将输入值与参考值相减,并确保绝对值( abs() )的结果小于或等于您的容忍度。
abs()
abs() 去掉了它的标志,所以它是一个简单的 <= 与公差值进行比较。
<=
$w = 1360; $h = 455; $cw = 1360; $ch = 460; $tol = 10; //px if (abs($cw - $w) <= $tol && abs($ch - $h) <= $tol) { echo "you are within the tolerance {$cw}x{$ch}px by +-{$tol} px."; }
(int) 在这里通常没有必要。但是,如果您的函数可能正在接收字符串值,我建议在计算之前将变量转换为int,以减少混乱。
(int)