php04—数据类型3-字符串
2017-12-18 本文已影响4人
YINdevelop
1.是什么字符串
一串字符就是字符串
2.字符串的声明方式
-
单引号声明
$str = '苹果真有钱,比英国国库的钱还多。我想倒插门'; var_dump($str); //string '苹果真有钱,比英国国库的钱还多。我想倒插门' (length=63)
-
双引号声明
$str = '213'; var_dump($str); //string "213" (length=3)
-
定界符声明
$a='啊';
$str = <<<EOF
苹果真有钱,比英国国库的钱还多。
我想倒插门$a
EOF;
var_dump($str);结果 string ' 苹果真有钱,比英国国库的钱还多。 我想倒插门' (length=69)
注:中文一个汉字占位3个字节。中文的标点也是3个字节
3.单引号和双引号区别
解析转译字符的能力
//1.单引号
$str = '青青子衿\n悠悠我心 this\'s a text';
var_dump($str);
//string '青青子衿\n悠悠我心 this's a text' (length=40)
//2.双引号
$str = "青青子衿\n悠悠\"我心";
var_dump($str);
//string '青青子衿
悠悠"\'我心' (length=28)
转义字符格式为\字符。常见的转义字符(\n——换行、\r——回车、\t——tab键)
单引号
- 不能解析转译字符,只能解析转译斜线\和自己本身(')
2.双引号
- 可以解析转译字符
解析变量的能力
//1.单引号
$str = '理万机';
$string = '日$str';
var_dump($string);
//string '日$str' (length=7)
//2.双引号
$str = '久生情';
$string = "日{$str}啊";
var_dump($string);
//string '日久生情啊' (length=15)
单引号
注:单引号不能解析变量,如果非要使用单引号解析变量,可以使用英文状态下的点(.)与变量相连接。
$str = '理万机';
$string = '日'.$str.'啊';
var_dump($string);
//string '日理万机啊' (length=15)
双引号
双引号可以解析变量
注:在双引号中解析变量需要使用{}将变量括起来,告诉字符串,请当变量来解析,若不加括号会报错。这也是为什么上述双引号例子中直接用括号括住。
引号之间的互相嵌套
- 单引号可以嵌套双引号,但是如果单引号要是嵌套单引号需要加转译斜线\转译
- 双引号可以嵌套单引号,但是如果双引号要嵌套双引号需要加转译斜线\转译
实际中使用哪种符号
- 能用单引号就用单引号。毕竟双引号功能太多。
- SQL语句一般使用双引号(在数据库中学习)
- 大文章或者大数据的时候使用定界符。
定界符
- 使用定界符,需要注意开头和结尾的书写格式.以<<<开始,后面跟一串自定义的字符
- 书写完自定字符串时必须换一行内容
- 写完内容时必须另起一行写结束符号
- 结束符所在的行必须顶头写,而且后面不能有其他内容
- 自定义字符串一般使用EOF (文件结尾end of file的意思)
- 使用定界符定义,空格换行等都会保留下来并且可以解析变量。