おそらくこれはPHPの制限ですが、関数呼び出しでオプションのパラメーターが指定されている場合でも(および== null
)、関数を呼び出して、オプションのパラメーターの「デフォルト」値を適用することは可能ですか?
多分私が何を意味するかを示す方が簡単です:
<?php
function funcWithOptParam($param1, $param2 = 'optional') {
print_r('param2: ' . $param2);
}
funcWithOptParam('something'); // this is the behaviour I want to reproduce
// this will result in 'param2: optional'
funcWithOptParam('something', null); // i want $param2 to be 'optional', not null
// this will result in 'param2: ' instead of 'param2: optional'
?>
さて、これに対する最も簡単な答えは「null
それから書いてはいけない」です-しかし私の特別な場合、私は呼び出しarray
のためのパラメータを取得し、これを行うことができるだけです:function
<?php
funcWithOptParam($param[0], $param[1]);
?>
したがって、がであっても、は$param[1]
オプションパラメータのデフォルト値を上書きしますnull
null
これに対する解決策は1つしかありません。オプションのパラメーターをスキップして、次のようにします。
<?php
function funcWithOptParam($something, $notOptional) {
if($notOptional === null) {
$notOptional = 'defaultvalue';
}
...
}
?>
しかし、これに対する別の解決策があるかどうか知りたいです。null
PHPに「実際の」値はありますか?それは本当に「何もない」に変換されますか?undefined
jsのようなもの?