2013-03-18 30 views
2

我知道函数中的符号意味着什么,这意味着您必须通过地址传递变量。但是我还没有遇到一个场景,我需要通过一些变量作为地址。你们能为我澄清一下吗?例如像何时传递变量作为函数中的地址php

function dollarx($x) { 
    echo $x[1]; 
} 

function dollar(&$x) { 
    echo $x[1]; 
} 

$x[0] = 1; 
$x[1] = 2; 

两个函数显示相同的

+0

代替'echo $ x [1];'try'$ x [1] = 4;'然后'var_dump($ x);'调用每个函数之前和之后(它被称为pass-by-引用不是地址) – Waygood 2013-03-18 16:04:05

+3

如果你在你的函数中改变'$ x,那么区别就在于例如'echo $ x [1] ++;' – 2013-03-18 16:04:14

+0

var_dump做什么? – 2013-03-18 16:06:51

回答

4

传递“通过引用”当你想要的功能,能够以更新变量的值。

例如:

function dollar(&$x){ 
    $x[1] = 12; 
} 

$x = array(1, 2); 
dollar($x); 

var_dump($x); // array(1, 12); 
+0

7分钟,直到你得到正确的答案。大声笑 – 2013-03-18 16:09:25

0

你可以使用它有一个功能集变量您。例如,你可以让一个函数返回一个包含结果的数组,或者你可以通过引用使用变量。

function GetUsernameAndEmailAddress(&$user, &$email) { 
    //get values from database or session or whatever. 

    $user = 'username'; 
    $email = '[email protected]'; 
} 


$username = ''; 
$email = ''; 
GetUsernameAndEmailAddress($username, $email); 

echo 'Hello '. $username. '. I have sent an e-mail to '.$email;