1

DateTime オブジェクトまたは null を受け入れたい関数が PHP にあります。例えば

function foo(DateTime $aDate){
   if ($aDate == null){
       echo "You passed a null variable";
   } else {
       echo "You passed the date " . $aDate->format('Y-m-d');
   }
}

問題は、関数が DateTime オブジェクトを想定しているため、 null を渡すと反転してエラーが発生することです。

Catchable fatal error: Argument 1 passed to foo() must be an instance of DateTime, null given,...

関数に null を渡してこのエラーを回避するにはどうすればよいですか?

4

4 に答える 4

6

これから変更します:

function foo(DateTime $aDate){

これに:

function foo($aDate){

ただし、渡されたオブジェクトがオブジェクトであることを確認したい場合は、次のようにするDateTimeことができます。

function foo(DateTime $aDate = null){

タイプヒンティングのその他の例については、こちらを参照してください。

于 2013-07-31T14:55:07.443 に答える
3

$aDate をオプションにします。

function foo(DateTime $aDate = null) {
    if($aDate) {
        //parse date
    } else {
        //null given
    }
}
于 2013-07-31T14:57:53.817 に答える
1

それを行う方法は、関数宣言でデフォルト値を割り当てることです:-

function foo(DateTime $aDate = null){
   if (!$aDate){
       echo "You passed a null variable";
   } else {
       echo "You passed the date " . $aDate->format('Y-m-d');
   }
}
于 2013-07-31T14:58:04.093 に答える