首頁  >  文章  >  後端開發  >  php语法分单引号,双引号么?

php语法分单引号,双引号么?

WBOY
WBOY原創
2016-06-23 14:17:541121瀏覽

本帖最后由 u011523116 于 2013-08-01 20:12:13 编辑

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


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


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

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

回复讨论(解决方案)

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

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

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

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

在C语法中,单引号与双引号,是两个完全不同的概念。绝不能混用!

在php语法,它们好像是一样?

php函数也很古怪啊。

有些部分可以省略,

如:括号( )。

我以前也遇到过此类的疑惑,尤其是也数据库的查询操作结合起来时,单引号和双引号区别更大。
我看到一份网上资料,链接为http://blog.csdn.net/wangjunhe/article/details/8191880,
收获不小,不妨你也看看。

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

$a = 123;echo "$a";echo '$a';
看看就知道了

在很多情况下,计算机语言是没有"为什么"的
就是这么设计的,你就得这么做

楼上xu大的例子很犀利

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

但如果使用单引号 不管包不包含变量 都会把纯粹的字符串输出出来
参照xu大的例子可以很好的理解

1.a.php,两句语句都是对,为什么?
不为什么,就是这样设计的,print和echo是属于语言结构,不是函数

php语言,不区分单引号与双引号么?

区分单引号和双引号,单引号是标准的字符串数据,而双引号则是可以任务是php的特殊模板,因为可以解析双引号中的变量内容

2.b.php,这句语句是错,为什么?
printf是一个标准的内置函数,不带括号就是一个函数调用,当然不能执行

另外 

$a = 123;echo "$a";echo "<br/>";echo '$a';echo "<br/>";echo "'$a'";echo "<br/>";echo '"$a"';


结果

123
$a
'123'
"$a" 

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

有这方面的官方手册么?
给个链接!

php语法是分单引号和双引号的,具体的区别网上有很多,反正各有优缺点。
a.php中的echo和print用单引号不出错,可以这么认为:echo、print其实不是函数,是一个操作符而已;
b.php中的printf是函数,后面必须接括号。

1.a.php,两句语句都是对,为什么?
不为什么,就是这样设计的,print和echo是属于语言结构,不是函数

php语言,不区分单引号与双引号么?

区分单引号和双引号,单引号是标准的字符串数据,而双引号则是可以任务是php的特殊模板,因为可以解析双引号中的变量内容

2.b.php,这句语句是错,为什么?
printf是一个标准的内置函数,不带括号就是一个函数调用,当然不能执行


有这方面的官方手册(中文翻译)么?


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

有这方面的官方手册么?
给个链接!
http://php.net/manual/zh/function.print.php



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

有这方面的官方手册么?
给个链接!
http://php.net/manual/zh/function.print.php

php语言,“语言结构”是个怎样的概念?
它与C语言的结构相同么?

本帖最后由 xuzuning 于 2013-08-02 12:53:09 编辑

语言结构 是一个程序块(过程),函数型语言没有对等的成分
你或许可以看做是宏

简单的说,语言结构既可以用圆括号包含着使用,也可以不用圆括号使用。
而内建函数必须用圆括号包含着使用。

php中输出变量,或者直接输出字符串一般是使用echo函数:
比如

$a="<h1>Hello,world!</h1><br/>";echo $a;echo "$a";echo '$a';

运行结果是:

变量加双引号会将变量先取出值,然后输出;
变来那个加单引号会将变量的名称直接输出;
printf函数一般用来格式化字符串
<?php$str = "Hello";$number = 123;printf("%s world. Day number %u",$str,$number);?>

输出:
Hello world. Day number 123
关于printf函数的详细用法,你可以看看:
http://www.w3school.com.cn/php/func_string_printf.asp

另外 

$a = 123;echo "$a";echo "<br/>";echo '$a';echo "<br/>";echo "'$a'";echo "<br/>";echo '"$a"';


结果

123
$a
'123'
"$a" 

echo "'$a'";

上面这类语句,包括多个单引号或双引号。
WEB服务器,解析这样的语句。
是先解析外部符号,还是先解析内部符号呢?
解析顺序怎样?


另外 

$a = 123;echo "$a";echo "<br/>";echo '$a';echo "<br/>";echo "'$a'";echo "<br/>";echo '"$a"';


结果

123
$a
'123'
"$a" 

echo "'$a'";

上面这类语句,包括多个单引号或双引号。
WEB服务器,解析这样的语句。
是先解析外部符号,还是先解析内部符号呢?
解析顺序怎样?


其实这个例子正好说明了你的问题
正式因为先解析外部的,最后一个即使内部是双引号也依然按单引号解析为字符串而非变量....

额,这是我根据结果推论的...不知道准确不



另外 

$a = 123;echo "$a";echo "<br/>";echo '$a';echo "<br/>";echo "'$a'";echo "<br/>";echo '"$a"';


结果

123
$a
'123'
"$a" 

echo "'$a'";

上面这类语句,包括多个单引号或双引号。
WEB服务器,解析这样的语句。
是先解析外部符号,还是先解析内部符号呢?
解析顺序怎样?


其实这个例子正好说明了你的问题
正式因为先解析外部的,最后一个即使内部是双引号也依然按单引号解析为字符串而非变量....

额,这是我根据结果推论的...不知道准确不

php官方手册(中文翻译)有这说明么?

这个学习了  以前以为不分的呢

双引号里面会被转义,单引号不会被转义

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn