2

这是我的情况。(我改变了我的情况)

我有变量让我们说来自数据库的 $var1 和方法 test($var1)

$var1 = getFromDatabase(); 
//now $var1 contaion "This is new variable".$var2

然后在测试方法中,我将从 $var1 方程进行简单的字符串运算。

test($var1){
  $var2 = "variable 2";
  //I want to extract $var1 so that string will be combined
  $value = $var1;

  $value_expected = "This is new variable".$var2;
}

但是 $value 将包含“这是新变量”.$var2。我希望 $value 包含这是 $var1 方程中的新变量变量 2。

有什么解决办法吗?那有可能吗?

谢谢你。

4

2 回答 2

1

不要使用引号。$var1 = $var2 + $var3;

引号表示您正在使用字符串

除此之外,您不能访问这样的局部变量。在函数内部声明的变量将无法在函数外部访问。即使你可以,你仍然不会得到你所期望的,因为你在初始化它们之前使用了 $var2 和 $var3。

于 2013-05-26T00:13:54.733 回答
0

您可以通过传递函数来寻找什么。例如:

function test( $var1 ) {
    $var2 = 4;
    $var3 = 5;

    // this line calls the function named in $var1 with $var2 and $var3 as arguments
    $value = call_user_func( $var1, $var2, $var3 );

    // in later versions of PHP you can do this instead:
    // $value = $var1( $var2, $var3 );
}

function addThem( $a, $b ) {
    return $a + $b;
}
test( 'addThem' );

请注意,组合变量的方法是作为函数传递的(或者至少,最接近 PHP 必须传递函数;PHP 是一种奇怪的语言)。它所作用的值也必须作为参数传递。

于 2013-05-26T00:21:33.373 回答