2010-06-29 60 views
1

如果我想myFunction采取$myVariable,并分配给它的SomeClass的情况下,我知道我能做到这一点:是否有可能在PHP中通过引用传递存储在数组中的变量?

class SomeClass { } 

function myFunction(&$myVariable) { 
    $myVariable = new SomeClass(); 
} 

myFunction($myVariable); 

var_dump($myVariable); 

不过,我想能够有myFunction这样操作:

class SomeClass { } 

function myFunction($args = array()) { 
    if(isset($args['something'])) { 
     $$args['something'] = new SomeClass(); 
    } 
} 

myFunction(array(
    'something' => $myVariable 
)); 

var_dump($myVariable); 

有什么办法可以做到这一点?

+0

请不要让我的头受伤。 – 2010-06-29 16:31:20

回答

0

这是一个丑陋的黑客,但可以工作:

global $$args['something']; 
$$args['something'] = new SomeClass(); 

但你永远不应该推出这样的副作用。

0

您只能通过引用传递变量,因此

myFunction(array()) 

不会在任何情况下工作。

林不知道你在做什么,但可以说

$myVariable = 'Mary'; 
$array['something'] = $myVariable; 

然后

$$array['something'] === $Mary 

哪个犯规存在。

我还没有测试过它,但我不认为这会按照你想要的方式工作,即使是全局变量。

相关问题