【发布时间】:2012-06-01 09:02:51
【问题描述】:
我想创建一个验证表单输入的类(请不要再发明轮子)。
我认为拥有一个具有静态验证方法的类更有意义,而不是因为该对象不包含任何数据而必须实例化一个验证对象?
例如,例如:
<?php
class Validator {
static function is_numeric($val) {
if(is_numeric($val))
return true;
}
}
允许我使用:
if(!Validator::is_numeric($_POST['age'])) $error['age'] = "Age must be a number";
鉴于:
<?php
class Validator {
public function is_numeric($val) {
if(is_numeric($val))
return true;
}
}
这意味着必须实例化一个类的实例才能使用这些函数——我认为这是对系统内存的毫无意义的使用? :
$validator = new Validator();
if(!$validator->is_numeric($_POST['age'])) $error['age'] = "Age must be a number";
我的示例验证方法是一个糟糕的例子,因为它除了使用标准的 PHP is_numeric 函数之外什么都不做,但这只是为了说明我的观点。
静态方法类是更好的选择吗?如果不是,为什么?
【问题讨论】:
-
在 PHP 中你可以定义没有类的函数。
valide_is_numeric(data)似乎更有意义。 -
我知道,但是将所有相似(即验证)函数分组在一个类中更有意义。命名空间也可以实现同样的效果,但在我看来,类更适合这个实例。
标签: php class static static-methods