0

関数のデフォルトの引数を設定しようとしています。したがって、たとえば、通常は常に次のようなことを行うことができます。

function foo ($var = 'blah')
{
    return $var;
}

しかし、もう少し複雑なことをしようとすると、予期しないT_VARIABLEという解析エラーが発生します。

function foo ($var = $this->string)
{
    return $var;
}

オブジェクトのインスタンスをデフォルトの引数としてどのように使用しますか。ありがとう!

4

4 に答える 4

2
function foo ($var = null)
{
    return ($var === null) ? $this->string : $var;
}
于 2013-02-16T00:15:41.573 に答える
0

デフォルトの関数の引数値からオブジェクトをインスタンス化することはできません。

メソッドでテストし$nullてインスタンス化することができます。

于 2013-02-16T00:15:41.370 に答える
0

これはできません。関数パラメーターは、定数値にのみ初期化できます。

于 2013-02-16T00:16:17.470 に答える
0

私はあなたがそれを行うことができるとは思わない. デフォルト値は定数のみです。

http://php.net/manual/en/functions.arguments.php

「デフォルト値は、(たとえば)変数、クラスメンバー、または関数呼び出しではなく、定数式でなければなりません。」

于 2013-02-16T00:16:27.953 に答える