2012-03-03 10 views
-3

私は

function exd ($user = null) { 
    return $user; 
} 

のような機能を記述する場合、私は

exd(); 

などの無変数と関数を呼び出す場合、値がnullでしょうか?

But if I give the function a variable does the variable that I give become `$user`? 

exd('account1'); 

ありがとうございました。ドキュメントで見つけられなかったので、私はここで質問しましたか?

+3

[あなたは非常に見苦しくなかった](http://php.net/manual/en/functions.arguments.php#functions.arguments.default) – cHao

+0

* "ドキュメントで見つからなかった" * - それは正確には隠されていません。 http://www.php.net/manual/en/functions.arguments.php#functions.arguments.default – Tomalak

答えて

2

デフォルトvalue.Ifは、あなたはそれがaccount1を返しますexd('account1')使うよう$userがnullに設定されているため、ヌルexd()リターンを呼び出します。 $user変数の内部にあるので、関数は値account1を取得します。関数の外では、$userの値を得ることはできません。

0

これは参考になるサンプルです。ここで

<?PHP 
function exd($user = NULL){ 
    return $user; 
} 
//Does nothing outside the function 
exd(); 

//Does nothing outside the function 
exd("Joe"); 

//$foo now = NULL 
$foo = exd(); 

//$foo now = string Joe 
$foo = exd("Joe"); 

?> 

は、ユーザーが文字列よりも複雑なものだった場合、これは、より有用であろう$ユーザー

<?PHP 
$user = "Jill"; 
function exd(&$user, $newName=NULL){ 
    $user = $newName; 
} 

//Outputs Jill 
echo $user; 
//Outputs Joe 
exd($user, "Joe"); 
echo $user 
//Outputs null 
exd($user); 
echo $user; 

?> 

を変更したいなかった場合有用である可能性がある二次関数です。