PHPで定数をデフォルトの関数値として使用する
質問
これは合法ですか?
<?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)
だから、はい、それは有効です:-)
所属していません StackOverflow