首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有绑定变量的方法?PHP 5

有没有绑定变量的方法?PHP 5
EN

Stack Overflow用户
提问于 2009-12-20 12:20:20
回答 6查看 3K关注 0票数 4

使用PHP 5时,我想知道一个变量是否可以动态引用多个变量的值?

例如

代码语言:javascript
复制
    <?php
    $var = "hello";
    $var2 = " earth";
    $var3 = $var.$var2 ;
    echo $var3; // hello earth

现在,如果我更改了$var$var2,我希望$var3也能更新。

代码语言:javascript
复制
    $var2 =" world";  
    echo $var3; 

这仍然打印hello earth,但我现在想打印"hello world“:(

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

EN

回答 6

Stack Overflow用户

发布于 2009-12-20 12:25:51

不,在PHP中没有办法用简单的变量来做到这一点。如果您想在PHP中做类似的事情,您可能要做的是创建一个包含var1和var2成员变量的类,然后使用一个方法为您提供var3的计算值。

票数 3
EN

Stack Overflow用户

发布于 2009-12-20 18:10:02

这应该能起到作用。我在PHP5.3上测试了它,它工作正常。也可以在任何5.2.x版本上运行。

您可以很容易地使用"add"-Method来扩展它,以允许在对象中放置任意数量的字符串。

代码语言:javascript
复制
<?php
class MagicString {
    private $references = array();
    public function __construct(&$var1, &$var2)
    {
        $this->references[] = &$var1;
        $this->references[] = &$var2;
    }

    public function __toString()
    {
        $str = '';
        foreach ($this->references as $ref) {
            $str .= $ref;
        }
        return $str;
    }
}
$var1 = 'Hello ';
$var2 = 'Earth';

$magic = new MagicString($var1, $var2);
echo "$magic\n"; //puts out 'Hello Earth'
$var2 = 'World';
echo "$magic\n"; //puts out 'Hello World'
票数 3
EN

Stack Overflow用户

发布于 2009-12-20 17:47:40

不是的。如果不使用某种自定义字符串类,就不能这样做。查看typesvariables的PHP手册,特别是这一段:

默认情况下,变量始终按值赋值。也就是说,当您将表达式赋给变量时,原始表达式的整个值将被复制到目标变量中。这意味着,例如,将一个变量的值赋给另一个变量后,更改其中一个变量将不会对另一个变量产生影响。有关此类赋值的更多信息,请参阅关于Expressions的章节。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1934830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档