日期:2014-05-17  浏览次数:20404 次

php语法分单引号,双引号么?
本帖最后由 u011523116 于 2013-08-01 20:12:13 编辑

//a.php
<?php
print'AAA';       //用单引号,语法对!
echo'BBB';       //用单引号,语法对!
?>



<?php
//b.php
printf'CCC';     //用单引号,错误!
?>


1.a.php,两句语句都是对,为什么?
php语言,不区分单引号与双引号么?

2.b.php,这句语句是错,为什么?

------解决方案--------------------
1.本来就是对的,字符串可以包在单引号对中也可以包在双引号对中

2.printf是函数 这一点是不同于print和echo的 所以要用printf('ccc');


------解决方案--------------------
1、在你的例子中没有体现单引号与双引号的区别,在php中,有些情况下单/双引号还是有区别的。
2、a.php中用了print,而b.php中是printf,两个是不同的概念。
手册说:
print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表
而printf 是一个真正的函数,需要用括号括起来 ,因此你第二个例子中如果写成: printf('CCC') ; 就对了
------解决方案--------------------
楼上xu大的例子很犀利

php规定双引号中既可以包含字符串常量 也可以包含变量
在运行的时候 会自动把变量中保存的字符串输出出来

但如果使用单引号 不管包不包含变量 都会把纯粹的字符串输出出来
参照xu大的例子可以很好的理解
------解决方案--------------------
本帖最后由 xuzuning 于 2013-08-02 12:53:09 编辑
语言结构 是一个程序块(过程),函数型语言没有对等的成分
你或许可以看做是宏