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);
有什么方法可以实现这一点吗?
If I want myFunction
to take $myVariable
and assign to it an instance of SomeClass
, I know I can do this:
class SomeClass { }
function myFunction(&$myVariable) {
$myVariable = new SomeClass();
}
myFunction($myVariable);
var_dump($myVariable);
However, I would like to be able to have myFunction
operate like this:
class SomeClass { }
function myFunction($args = array()) {
if(isset($args['something'])) {
$args['something'] = new SomeClass();
}
}
myFunction(array(
'something' => $myVariable
));
var_dump($myVariable);
Is there any way to achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个丑陋的黑客,但可以工作:
但你不应该引入这样的副作用。
it's an ugly hack but could work:
But you should never introduce such side effects.
您只能通过引用传递变量,因此
在这两种情况下都不起作用。
我不确定你在做什么,但可以说
“Then
Which”不存在。
我还没有测试过它,但我认为即使使用全局变量,它也不会按照您想要的方式工作。
You can only pass variables by reference, so
will not work in either case.
Im not sure what your doing, but lets say
Then
Which doesnt exist.
I havent tested it, but I dont think that will work the way you want it to, even with global variables.