我已经了解到引用在PHP中无关紧要。
但是在下面的代码中,如果我尝试在eval()
中使用单引号;我得到错误,另一方面,代码可以正常使用Double Quotes。
$a = '2';
$b = '3';
$c = '$a+$b';
echo $c.'<br/>';
eval("\$c = \"$c\";");
//eval('\$c = \'$c\';'); //Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING
echo $c;
答案 0 :(得分:2)
行情很重要; - )
<?php
$color = "red";
echo "My car is $color"; // Outputs "My car is red"
echo 'My car is $color'; // Outputs "My car is $color"
?>
答案 1 :(得分:2)
PHP.net表示使用单引号时不会扩展转义序列。
答案 2 :(得分:1)
与双引号不同,PHP不会用单引号解析变量。
示例:强>
$name = 'John';
echo 'hello $name'; // hello $name
echo "hello $name"; // hello John
仅供参考,出于安全原因,在生产环境中使用eval
并不是一个好主意。
答案 3 :(得分:1)
使用eval
是bad idea
,但如果您为learning purpose
执行此操作,那么正确的方法是
eval("\$c = \$c;");
。
答案 4 :(得分:0)
don't use eval并在此处更新您的string-quoting skills:
答案 5 :(得分:0)
以下示例取消了:The PHP Manual
<?php
echo 'this is a simple string';
echo 'You can also have embedded newlines in
strings this way as it is
okay to do';
// Outputs: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';
// Outputs: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';
// Outputs: You deleted C:\*.*?
echo 'You deleted C:\*.*?';
// Outputs: This will not expand: \n a newline
echo 'This will not expand: \n a newline';
// Outputs: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>