PHP字符串单引号和双引号的区别,多文本的如何定义

<?php
// 常见的面试题

// 1:单双引号定义字符串有何区别?

$age = 29;

$str1 = 'hello \n\r \t $age';
$str2 = "hello \n\r \t $age";
$str3 = "hello \n\r \t {$age}"; //{}来明确表明是变量
$str4 = "hello \n\r \t ${age}";

echo $str1,'<br />',$str2,'<br/>',$str3,'<br/>',$str4;

$str5 = <<< EOD            //多行文本定义不需要转义
1111111111111111111111111
2222222222222222222222222
3333333333333333333333333
\\....$ %
$age
EOD; //顶格!!!写

echo $str5;

$str5 = <<< EOZ
1111111111111111111111111
2222222222222222222222222
3333333333333333333333333
\\....$ %
$age
EOZ;

echo $str6;


/*

转义上的区别:
单引号,系统不做复杂的转义,
只转义\',\\, 其他的---一律原样输出.

双引号,则转义的比较多,\",\\,\r,\n,\t,\$等.



对于变量解释的区别:
单引号,不对字符串的$作变量名解析,
而双引号,会试着$理解成变量名,来解析.

*/


// 2:单双引号定义字符串,哪个速度更快一些?
// 答:单引号解析的更快,因为不需要进行过多的转义和变量解析



// 问:什么时间选用单/双引号呢?
/*
答:大段文本,比如新闻标题,文本内容,自我介绍等这样大段话,
用',解析快.

但有时候,确实需要在一段字符串夹杂变量,
比如拼凑sql语句时

$id = 5;
$sql = "select * from user where id = $id";

// 如果此时用单引,则语句成为了 ..id= $id,sql就出错了.
// 此时,用双引合适. 解析$id,语句解析成 ..id = 5;
*/
posted @ 2012-11-22 12:27  风林火山09  阅读(274)  评论(0编辑  收藏  举报