[英]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.