2016-08-31 15 views
0

私は、次のしている:どのように私はデフォルトの引数値を設定できますが、PHPでは新しいオブジェクトを設定できませんか?例えば

public function foo($integer = 1; $myObj = new myClass()){} 

"解析エラー:構文エラー、Cの予想外の '新しい'(T_NEW):\ XAMPP \ htdocsに..."

+0

その有効でないPHPなので - 何を言いたいですか? – nogad

+0

あなたはあなたの引数にそのクラスのインスタンスを渡すことができるように、あなたは 'myClass $ myObj'として設定することができます。 – Ghost

答えて

1

関数プロトタイプがしなければなりませんコンパイル時に評価される。ランタイムになるまではnew myClassが何であるかを知る方法はありません。クラスとそのすべての先祖の定義にそれを構築するために必要なランタイム情報を追加する必要があるからです。

ただし、割り当てがランタイムに延期されるように、関数のデフォルト引数を設定することはできます。

class myClass { 
    public function foo($integer = 1, myClass $myObj = null) { 
     if (!$myObj) { 
      $myObj = new myClass; 
     } 
    } 
} 

また、関数プロトタイプに構文エラーがあります。引数のセパレータはカンマ,で、セミコロンは;ではありません。

+0

Thanks Sherif !!!! – user3646717

関連する問題