Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php &引用;“准备好的报表”;对于一般变量?_Php_Variables - Fatal编程技术网

Php &引用;“准备好的报表”;对于一般变量?

Php &引用;“准备好的报表”;对于一般变量?,php,variables,Php,Variables,我想这是一些基本的事情,但老实说,我以前从来没有这样做过,现在我有点卡住了。是否可以定义一个也包含变量但仅在声明字符串后定义该变量的字符串?下面是一个简单的例子 $string = 'What a ' . $var . ' day!'; $var = 'nice'; echo $string; // This should print "What a nice day!" 请注意,$var是如何仅在声明$string之后而不是之前定义的。我在考虑某种变量,通过引用传递,封装成某种东西,或者

我想这是一些基本的事情,但老实说,我以前从来没有这样做过,现在我有点卡住了。是否可以定义一个也包含变量但仅在声明字符串后定义该变量的字符串?下面是一个简单的例子

$string = 'What a ' . $var . ' day!';

$var = 'nice';

echo $string; // This should print "What a nice day!"
请注意,$var是如何仅在声明$string之后而不是之前定义的。我在考虑某种变量,通过引用传递,封装成某种东西,或者使用OOP,但到目前为止运气不好。也许这是一些基本的语法,但这对我来说是第一次。这不需要严格地描述变量。我想这与PDO中准备好的语句类似。但我需要在更广泛的范围内使用这种“准备好的声明”。有什么提示吗

编辑

我真傻,对不起。我忘了提那件重要的事(没有它我的情况就不那么清楚了)。问题是,我想要注入到准备好的字符串中的变量必须来自通用范围。再举一个例子:

    function Test($var) {

    $string = What a ' . $var . ' day!';
    return $string;

}
$var = 'nice';
echo Test($var);

上面所述并不能解决这个问题,因为我需要了解$var,并在执行函数时手动调用它。在我的例子中,我希望我的prepared语句只在我实际调用该prepared语句时才查找它定义的变量。如果当前范围中存在这些变量,请使用它们。只有当它们不存在时才会抛出错误。

可能是存储在变量中的函数

$dayis = function ($adj) {
  return 'What a ' . $adj . ' day!';
  }

$var = 'nice';

echo $dayis($var);

然而,这是非常罕见的,可能不需要。请更好地说明您的问题,因为这似乎是一个问题。

首先定义您的
$var
,然后用字符串添加try

$var = 'nice';
$string = 'What a ' . $var . ' day!';
echo $string; // This should print "What a nice day!"
或者如果您想在字符串之后保留$var,请尝试
str\u replace()
like

$string = 'What a $var day!';
$var = 'nice';
echo str_replace('$var', $var, $string);
函数调用try时,
$string
中缺少引号和分号

function Test($var) {
    $string = 'What a ' . $var . ' day!';
    return $string;
}
$var = 'nice';
echo Test($var);

您可以使用匿名函数进行此操作

$variable = 'bad';

$text = function() use($variable){
  return 'What a ' . $variable . ' day!';
}

echo $text();

你想用这个来解决什么问题?检查我更新的答案我想写一个函数来处理一些旧代码和处理一些安全漏洞。在通用范围中定义了一组字符串,它们使用了一组其他字符串,也在通用范围中。我想将某些字符串打包到一个函数中,然后用参数调用该函数来提取这个特定字符串(例如ReturnString(5))。但是这些字符串变化很大。有时,它可能像“一美元、二美元、三美元”;有时它可能是smth,比如“1.$2.$3.$4.$5”;。我想我需要将所有外部字符串打包到数组中,并将其传递给函数,函数将处理它们并返回粘合的字符串。但考虑到像$2或$3这样的变量(我的上一个示例)在一般范围内都是可用的,我认为有一种更简单的方法。