PHP:动态创建变量

PHP:动态创建变量,php,oop,Php,Oop,我的一个类方法如下所示: public function something() { $this->create_varible('test'); return $test; } 我想创建一些变量(不是类变量),将它的名称作为参数传递给createvariablemmethod(如上所示),然后返回它的值 我们将感谢您的帮助,提前表示感谢。示例: <?php public function create_variable($name, $value) { //

我的一个类方法如下所示:

public function something() {
    $this->create_varible('test');
    return $test;
}
我想创建一些变量(不是类变量),将它的名称作为参数传递给
createvariablemmethod
(如上所示),然后返回它的值


我们将感谢您的帮助,提前表示感谢。

示例:

<?php

public function create_variable($name, $value) {
  // Dynamically create the variable.
  $this->{$name} = $value;
}
<?php

$stack = 'overflow';
${$stack} = 'example';

echo $overflow;
如何使用PHP,特别是和方法

演示可以在这里找到:

另外,我提到这一点是因为如果您使用
$this->
,并假设您正在处理对象


p.p.S.我认为@Francois有更好的解决方案,但提供了另一种选择。

我也不认为这有什么意义。但要逐字回答你的问题:

为此,您可以使用:

public function something() {
    extract($this->create_varible('test'));
    return $test;
}

public function create_varible($varname) {
    return array ($varname => 12345);
}
->create_varible
本身无法在调用程序范围内创建变量。这就是为什么需要将调用包装在
extract()
中,以获得所需的效果;不管它的目的是什么


(是的,意识到打字错误。)

以我的生命来说,我想不出你为什么要这么做,你能再解释一下吗?那没有意义。。。你想达到什么目的?我也不明白这个问题的重点。。。奇怪…这个问题听起来很简单,但它不是仅仅想从类方法中创建一个变量,通过将它的名称作为方法的参数传递,然后返回它的值。感谢brad,您的答案似乎很有用,但是如何仅对一个变量(而不是数组)执行此操作,顺便说一句,您可以使用任一解决方案在超全局中设置变量。e、 g.
$GLOBALS[$varName]=$value
坚持我的例子。你不是说“不是类变量”吗@帕万:看我的更新。FlyBy:的确,我为此调整了解决方案。@FrancoisDeschenes:同意,但您也可以将其限制为直接类方法调用。诚然,我一开始并没有完全理解这个问题,觉得
\uuu Set
/
\uu Get
就是解决方案。但是使用
$GLOBALS
的类之外的create_Var方法可能是他们的答案。我用一个替代方法更新了我的示例,该方法将创建一个变量(而不是类变量),但请记住变量的范围。动态创建的变量仅在该函数中可用。
public function something() {
    extract($this->create_varible('test'));
    return $test;
}

public function create_varible($varname) {
    return array ($varname => 12345);
}