如果我写的话
$var = 12;
echo '$var'; //$var gets printed
echo "$var"; //12 gets printed
但是当我做
之类的事情时$name = 'peter'; $email = 'peter@yahoo.com';
$query = "INSERT INTO email_list (name, email) VALUES ('$name', '$email')";
为什么变量的值会插入到表中? 为什么'$ name'和'$ email'没有插入到表中,因为它们被包含在单引号内?
类似地,
echo 'i am going <br />';
未打印:i am going <br />
答案 0 :(得分:3)
为什么要在表中插入变量的值,为什么 不是'$ name'和'$ email'会被插入到表中,因为它们 用单引号括起来。
因为您的字符串是用双引号("INSERT INTO email_list (name, email) VALUES ('$name', '$email')";
)引用的,所以整个字符串都执行了变量扩展。如果您撤消了对引号的使用,那么您将获得您在字符串中使用$name
和$email
引用的输出。
同样,
echo 'i am going <br />';
为什么不打印:i am going <br />
实际情况确实如此,但是<br />
只是一个换行符并且没有产生可见的输出,只是一个换行符。要输出<br />
之类的标记并查看它,您需要输出实体,例如<br />
在浏览器中呈现为<br />
。
如需进一步阅读,请参阅http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing
答案 1 :(得分:2)
双引号强制PHP评估字符串(即使可能不需要),而不评估单引号之间的字符串。 以下是完整说明:
What is the difference between single-quoted and double-quoted strings in PHP?
答案 2 :(得分:0)
"hey guys, I'm going to the movies!" // <-- acting as simple text
"hey guys".' '."eat my food, ok?" // <-- acting as delimiters since it's broken up into three actual strings concatenated by the dot operator.
这有意义吗?