使用 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 的宽度或高度不可能为负数。您有责任防止虚假输入破坏您的对象,并避免在代码的其他部分中出现潜在的错误和异常。