質問

これは合法ですか?

<?php

function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
      //lots_of_awesome_code
}

?>

MENU_DEFAULT_VALUE および ODP_DEFAULT_VALUE は、ファイル内で以前に定義された定数です。

役に立ちましたか?

解決

はい、それは合法です。

マニュアルから:

  

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

定数はその法案に完全に適合しています。

他のヒント

OOPコンテキストでは、クラスメンバー定数をデフォルトのメソッド引数値として使用することもできます。

class MyClass
{
    const A = 1;

    public function __construct($arg = self::A)
    {
        echo $arg;
    }
}

なぜ試してみませんか?

それでも、今すぐテストできるように、次のコード:

define('MENU_DEFAULT_VALUE', 10);
define('ODP_DEFAULT_VALUE', 'hello');

function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
    var_dump($foo);
    var_dump($nub);
    var_dump($odp);
}

ftw();

この出力を与える:

string 'pwnage' (length=6)
int 10
string 'hello' (length=5)

だから、はい、それは有効です:-)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top