2011-08-20 29 views
0

我在PHP中有兩個變量,比如$a$b$a是一個字符串變量。它包含$b。如果更新$b,我想自動更新$a

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

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

有什麼用例描述?你爲什麼需要這個? – outis

回答

1

是,$a可以自動,如果你引用賦值$b$a被更新,但不應該是分配給$a任何字符串連接。

嘗試:

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

echo $c.$a; 

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

Here is a demo

0

你應該按引用傳遞它。怎麼做 ?

做一個函數:

function showValue(&$b) 
{ 

    return 'value is ' . $b; 

} 

echo showValue($b); 

我認爲這應該工作。

+0

實際上,我有一個字符串變量,它取決於其他一些變量。所以我想更新這個變量,如果任何其他變量更新。感謝您的寶貴回覆。我想我應該跟功能一起去...... – Abhimanyu1310

1

不可能的,你想要的方式。你看,變量可以通過引用傳遞,就像這樣:

$a = &$b; 

這將導致$a$b的變化,但是,它可能不包含任何其他值,(是你想要的字符串)自動更新,因此您必須使用函數另一個變量來執行此操作。

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

$b = &$a; 
$description = "Value is "; 
echo $description . $b; 
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字符串中時,函數纔會起作用。相反,您必須使用字符串連接,或將函數調用的結果分配給局部變量並對其進行插值。

0

當php腳本運行時,它會運行「一行一行」。當你像這樣分配

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

$ b的值已經被分配給$ a,作爲整數4(而不是$ b)。所以,如果下一個$b更新爲其他值。變量$a不知道它。

在這種你必須使用的函數或變量引用情況在一些其他的答案

$a = 4; 
    $b =& $a; 
    $a = 5; 
    echo $b; 
相關問題