使用 CONST 设置上限和下限
如果您的代码接受用户输入,或者您只需要确保输入的可接受性,则可以使用常量来设置上限和下限。注意:强烈建议使用一个强制执行限制的静态函数……查看下面的 clamp() 函数以了解其用法。
<?php
class Dimension
{
const MIN = 0, MAX = 800;
public $width, $height;
public function __construct($w = 0, $h = 0){
$this->width = self::clamp($w);
$this->height = self::clamp($h);
}
public function __toString(){
return "Dimension [width=$this->width, height=$this->height]";
}
protected static function clamp($value){
if($value < self::MIN) $value = self::MIN;
if($value > self::MAX) $value = self::MAX;
return $value;
}
}
echo (new Dimension()) . '<br>';
echo (new Dimension(1500, 97)) . '<br>';
echo (new Dimension(14, -20)) . '<br>';
echo (new Dimension(240, 80)) . '<br>';
?>
- - - - - - - -
Dimension [width=0, height=0] - 默认大小
Dimension [width=800, height=97] - 宽度已被限制为 MAX
Dimension [width=14, height=0] - 高度已被限制为 MIN
Dimension [width=240, height=80] - 宽度和高度不变
- - - - - - - -
在您的类上设置上限和下限也有助于您的对象更有意义。例如,Dimension 的宽度或高度不可能为负数。您有责任防止虚假输入破坏您的对象,并避免代码其他部分出现潜在的错误和异常。