今日私はいくつかのPHPを見ましたが、私は理解できません。私は理解していない何
function my_func($param='')
{
if (empty($param))
{
return false;
}
else
{
return true;
}
}
は空の文字列を割り当てられているの$のparam変数であるが、何とか関数内で空でありませんか?これは単なるデフォルト値ですか?
今日私はいくつかのPHPを見ましたが、私は理解できません。私は理解していない何
function my_func($param='')
{
if (empty($param))
{
return false;
}
else
{
return true;
}
}
は空の文字列を割り当てられているの$のparam変数であるが、何とか関数内で空でありませんか?これは単なるデフォルト値ですか?
my_func("string") //makes $param "string"
my_func() //picks default making $param ''
あなたは、必須およびオプションのparams
function my_func($param1, $param2='default')
のようなあなたが必要なのparams
function my_func($param1='', $param2) //gives errors.
はい、PHPのパラメータにデフォルト値を割り当てることができます。たとえば、my_func( "None Empty String")を使用して上書きすることができます。
あなたの前提は正しいです。これにより、開発者はパラメータにデフォルト値を割り当てることができます。
呼び出しコードがパラメータ値を渡さない場合、この関数はfalseを返します。それ以外の場合は、$param
は空ではなく、この関数はtrueを返します。
このコードで潜在的な落とし穴は、パラメータが空の値(0、nullなど)で渡された場合です。パラメータは渡されても、コードはfalse
を返します。
はい、関数宣言の括弧内の変数はデフォルト値であり、そしてあなたは、このように関数を呼び出すことができるように使用されます。実際に関数に変数を渡すために必要とせずに
echo my_func();
すべて。
PHP関数ドキュメントの後ろにオプションのparamsを置くことはできませんしていることができます:[デフォルト引数値](のhttp:/ /us2.php.net/manual/en/functions.arguments.php#functions.arguments.default) – Wiseguy
[パラメータの数に制限のないPHP関数]の重複が可能です。(http://stackoverflow.com/questions/1577383/p hp-function-with-unlimited-number-of-parameters) –
@Shiplu私は同意しません。その質問は少し違っており、デフォルトの引数値は参照されません。 – Wiseguy