2016-08-17 7 views
-1

$ durationがDateInterval型のオブジェクトであることを確認したい場合は、例外をスローします。 $期間がオブジェクトではない...と、このコードが長いphpの入力パラメータのタイプをチェックする良い方法はありますか?

 if (is_object($duration)) { 
      if (get_class($duration) != "DateInterval") { 
       throw new \Exception('The provided duration is not DateInterval type.'); 
      } 
     } else { 
      throw new \Exception('The provided duration is not DateInterval type.'); 
     } 

に見えるより良い方法がある場合にはget_class関数は失敗しますか?

+0

あなたはDateIntervalのinstanceof場合(is_object($時間)&&($時間)に – mmmm

+2

タイプのヒントを、それを短縮することができますhttp://php.net/manual/en/ functions.arguments.php#functions.arguments.type-declaration –

答えて

2

使用instanceof

if (!$duration instanceof DateInterval) { 
    // throw Exception 
} 
+0

あなたの否定を修正してください - それはそうでなければなりません:if(!($ duration instanceof DateInterval)) – mmmm

+1

いいえ、そうすべきではありません。 –

+0

:) – mmmm