Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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 - Fatal编程技术网

PHP美元符号字符串

PHP美元符号字符串,php,Php,我不明白为什么PHP不在包含美元符号的字符串中进行替换。 请看以下示例: <?php error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE); $var = 1024; $str = '$var'; echo $str, '<br>', "$str"; $str包含一个内容为“$var”的字符串(没有变量替换,只有这些字符)。它是使用单引号创建的,因此没有变量替换 使用echo“$str”回送时,变量$str将被替

我不明白为什么PHP不在包含美元符号的字符串中进行替换。 请看以下示例:

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
$var = 1024;
$str = '$var';
echo $str, '<br>', "$str";

$str
包含一个内容为“$var”
的字符串(没有变量替换,只有这些字符)。它是使用单引号创建的,因此没有变量替换

使用
echo“$str”
回送时,变量
$str
将被替换为其内容,即字符串
“$var”
,从而产生输出


双引号字符串中的字符串替换不能递归工作!因此,为了在第二个外观中将
$str
替换为
1024
,您必须首先使用双引号创建
$str

$str包含文本字符串$var,因为它位于单引号之间,因此永远不会被解释

要解释它,需要eval()

是否将输出1042

您的意思是

<?php
  error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
  $var = 1024;
  $str = $var;
  echo $str, '<br>', "$str";
允许您在字符串中放置变量

把里面的一切都当作一个字符串

因此,如果您使用
'$var'
,则它是一个内部带有
$
的字符串


$str“
接受
$str
值,因此它会打印
$var

您在提问之前看过了吗?当然。当字符串用双引号或heredoc指定时,将在其中解析变量。我认为$str内容应该被解释为一个变量。是的。它被解释为
$str
,其中包含字符串
'$var'
。我只是想澄清,这不是因为,例如,配置设置,在这种情况下转义美元符号。我认为这是一个误解。“双引号”指的是“双引号”,而不是由两个“单引号”括起来的字符串。手动语言可能更清晰。。。“所示类型的”;其他语言在日常讲话中使用不同的引号。您也可以转义美元符号:
“pas\$word”
。仅代码答案在StackOverflow上的值较低。旧的纯代码答案会激发新的纯代码答案。请通过编辑此答案以包含一些解释,从而更好地回答问题。
<?php
  error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
  $var = 1024;
  $str = $var;
  echo $str, '<br>', "$str";