フォーム入力を検証するクラスを作成したいと思います(車輪の再発明についてのコメントはありません)。
オブジェクトはデータを保持しないため、検証オブジェクトをインスタンス化するよりも、静的な検証メソッドを持つクラスを使用する方が理にかなっていると思いますか?
たとえば、次のようになります。
<?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関数を使用する以外に何もしないため、悪い例ですが、これは私のポイントを説明するためだけのものです。
静的メソッドクラスはより良いオプションですか?そうでない場合、なぜですか?