簡體   English   中英

是否可以通過引用在PHP中傳遞存儲在數組中的變量?

[英]Is it possible to pass a variable stored in an array by reference in PHP?

如果我希望myFunction接受$myVariable並為其分配SomeClass的實例,我知道我可以這樣做:

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);

有什么辦法可以做到這一點?

這是一個丑陋的hack,但可以工作:

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

但是,您絕對不應引入此類副作用。

您只能通過引用傳遞變量,因此

myFunction(array()) 

在兩種情況下均不起作用。

我不確定您在做什么,但可以說

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

然后

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

哪個不存在。

我還沒有測試過,但是我認為即使使用全局變量,它也不會按照您想要的方式工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM