2016-05-26 24 views
0
class ValidatorClass{ 
    public function PersonAge($firstPar, $secondPar){ 
     if(!$this->isFloat($firstPar)){ 
      return 0; 
     } 
     if(!$this->isNumber($secondPar)){ 
      return 0; 
     }/*the function contiues to a select query that works if I remove the two filters on top and returns 1 if match found(but it doesn't matter for the situation, just to clarify)*/ 
    } 
    }//PersonAge() 

    public function isFloat($inputFloat){ 
     return is_float($inputFloat); 
    } 
    public function isNumber($inputNumber){ 
     return is_int($inputNumber); 
    } 
    public function isString($inputString){ 
     return is_string($inputString); 
    } 
} 

基本的にフィルタは機能せず、0を返し、状況によっては値が浮動小数点または整数で停止します。彼らは真を返すべきであり、0を返すべきではありません、関数は続行する必要があります。同じことをする別の方法がありますか?あるいは、これを働かせてください。PHPクラス:if内部のif関数内で関数を呼び出す

+0

であるかどうかを確認するis_numeric()を果たすべきですサンプルの入力を確認する必要があります。 –

答えて

0

数は数値テキストINTでない場合、それが原因is_intチェックです。
6 - これはis_intのために良いです。
「6」 - それはint型ではない文字列があるので、これはis_intのために良いではありません。

あなたは、文字列はあなたが、例えばこの関数を呼び出す方法を示すために必要な数

+0

ポイントは、それが壊れている私は、右のすべての時間の数値を得たが、それはいけません。私はそれが壊れる場所を確認するif文を分割するが、両方のステートメントが0を返す場合は...最初のものは、フロートである第二はint型であり、それは –

+0

を破る1を返し、引き続き、べきではありませんので、おそらくあなたのパラメータは、私のように文字列であります最初に述べた。あなたが正しい ' – nospor

+0

、彼らは文字列で、今...おかげで、あなたが参考にされてきたお奨めの修正、私の'のvar_dump($ firstPar)の正確な結果を表示 –

関連する問題