php变量$ a包含变量$ b,更新$ b和$ a应自动更新

时间:2011-08-20 09:54:32

标签: php variables

我在PHP中有两个变量,比如$a$b$a是一个字符串变量。它包含$b。如果$a已更新,我想自动更新$b

$b = 4;
$a = "value is ".$b;
echo $a; // value is 4

$b = 5;
echo $a; // should print value is 5

6 个答案:

答案 0 :(得分:1)

是的,如果您通过引用将$a分配给$b,则$a可以自动更新,但不应该为$a分配任何字符串连接。

尝试:

$b = 4;
$a = &$b;
$c = 'Value is ';

echo $c.$a;

$b = 5;
echo $c.$a;

Here is a demo

答案 1 :(得分:1)

不可能以你想要的方式。你看,变量可以通过引用传递,如下所示:

$a = &$b;

这会导致$a$b更改时自动更新,但是,它可能不包含任何其他值(如您想要的字符串),因此您必须使用 另一个变量来做。

$b = &$a;
echo "Value is $b";

$b = &$a;
$description = "Value is ";
echo $description . $b;

答案 2 :(得分:1)

PHP没有该功能。您可以使用的相关功能包括:

  1. References,它允许您将一个变量别名化为另一个变量。每个变量的值都是相同的,因为它们只是符号表别名。

    $b = "I'm b."
    $a =& $b;
    echo $a;
    
  2. Variable variables,其中一个变量包含另一个变量的名称。

    $b = "I'm b."
    $a = 'b';
    echo $$a;
    

    但是,通常应避免使用变量变量,因为它们通常会导致不必要的混淆。

  3. 功能(正如mithunsatheesh所暗示的那样)。这与您想要的最接近,因为函数调用是一个具有您正在寻找的值的表达式。在将值插入double-quoted字符串或heredoc时,函数在变量所在的位置不起作用的唯一位置。相反,您必须使用字符串连接,或者将函数调用的结果分配给局部变量并插入它。

答案 3 :(得分:0)

您应该通过引用传递它。怎么做?

创建一个功能:

function showValue(&$b)
{

   return 'value is ' . $b;

}

echo showValue($b);

我认为这应该有用。

答案 4 :(得分:0)

查看http://www.php.net/manual/en/language.references.whatdo.php

$a = 4;
$b =& $a;
$a = 5;
echo $b; // should print 5;

答案 5 :(得分:0)

当php脚本运行时,它会“逐行”运行。当您像这样分配时

$b = 4;
$a = "value is ".$b;

$ b的值已经作为整数4(不是$ b)分配给$ a。因此,如果下一个$b更新为其他值。变量$a对此一无所知。

在这种情况下,您必须使用函数或变量引用,如其他一些答案所述

   $a = 4;
    $b =& $a;
    $a = 5;
    echo $b;