PHP变量行为或约定

PHP变量行为或约定,php,Php,这是我的案子。(我换了案子) 我有来自数据库和方法测试($var1)的变量,比如$var1 然后在测试方法中,我将从$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; } 但是$va

这是我的案子。(我换了案子)

我有来自数据库和方法测试($var1)的变量,比如$var1

然后在测试方法中,我将从$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

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;
}
有什么解决办法吗?这可能吗


谢谢。

不要使用引号<代码>$var1=$var2+$var3

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


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

通过传递函数,您可以找到它们。例如:

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是一种奇怪的语言)。此外,它工作的值必须作为参数传递。

感谢您的回复。1.我不会从外部访问$var2和$var3。2.我想让$var1动态$var1包含公式。然后方法测试将从$var1.Thx计算ur响应的简单方程。是的,它会在我的第一个案例中起作用,尽管这需要很长时间。请看我的第二个箱子。有可能使$value的输出与$value_预期的相同吗?@guurnita您更新的问题会给您带来严重的安全风险。一个更好的解决方案是使用预先确定的标记,如
,它可以放入字符串中,然后
str\u替换
函数中的它们(您甚至可以
str\u替换
$var1
名称,但这似乎会让用户感到困惑)