<?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; */