-
php字符串基础教程
PHP字符串的概念简介
这里所说的字符主要包含一下几种类型:
1. 数字类型, 如1、11、111等。
2. 字母类型, 如a、df、msn等。
3. 特殊类型,如#、$、^、&等。
4. 不可见字符,如\n(换行符)、\r(回车符)、\t(Tab字符)等。
不可见字符是比较特殊的一组字符,用来控制字符串格式化输出,在浏览器中是不可见的,一般只能看到字符串输出的结果。
下面是一个字符串的简单实例:
<?php echo "i am cyy \r qq:965794175 \n welcome~";
输出结果为:
奇怪,我的 \n 为什么没有换行……
一个值怎么转换成字符串?
一个值可以通过在其前面加上 (string) 或用 strval() 函数来转变成字符串。在一个需要字符串的表达式中,会自动转换为 string。比如在使用函数 echo 或 print 时,或在一个变量和一个 string 进行比较时,就会发生这种转换。类型和类型转换可以更好的解释下面的事情,也可参考函数 settype()。
一个布尔值 boolean 的 TRUE 被转换成 string 的 "1"。Boolean 的 FALSE 被转换成 ""(空字符串)。这种转换可以在boolean 和 string 之间相互进行。
一个整数 integer 或浮点数 float 被转换为数字的字面样式的 string(包括 float 中的指数部分)。使用指数计数法的浮点数(4.1E+6)也可转换。
这里需要注意的是:NULL 总是被转变成空字符串。
什么是php转义与反转义字符串数据?
转义字符,其实就是将规定的PHP语法用 " \ " 来输出。但语法规定在不同的系统中转义字符的作用是不同的,例如:在windows系统中的回车换行符用 " \r " 或" \n ",而在Linux 系统中这两种换行符就有比较大的区别:"\r"光标回到行首,但还在本行; "\n"表示下一行,不会回到行首。
PHP中的转义字符有如下的一些:
" \n" ==>换行
"\r"==>回车
"\t"==>水平制表符
"\\"==> 反斜杠
"\$" ==>美元符号
" \' "==>单引号
" \" " ==>双引号
" \[0-7]{1,3} " 正则表达式匹配一个八进制符号表示的字符
" \x[0-9A-Fa-f]{1,2} " 正则表达式匹配一个十六进制符号表示的字符
字符串可以使用单引号(')、双引号(")、界定符(<<<)3种方法定义。而指定一个字符串最好的方法是用单引号(')包起来。当使用字符串时,很可能在该字符串中存在这几种与PHP脚本混淆的字符,因此需要对这些字符做转义处理,要在这些字符的前面使用转义符 " \ "。
使用转移符 " \ " 对字符串进行转义的实例:
<?php echo 'this is cyy, my web is \'www.cyy.com\'';
输出结果为:
PHP字符串连接符的使用实例
在PHP中,字符串之间使用 “点” 来连接,也就是英文中的半角句号 " . " 。" . " 是字符串连接符,可以把两个或两个以上的字符串链接成一个字符串。例如:
<?php $name = 'cyy'; $desc = ' is cute'; echo $name.$desc;
输出结果为:
应用字符串连接符号没有办法实现大量字符串的连接,PHP允许程序员在双引号中直接包含字符串变量,当echo语句后面使用的是 双引号 (" ")时,可以使用下面的格式来达到相同的效果。例如:
<?php $name = 'cyy'; $desc = ' is cute'; echo "$name$desc hhh";
字符串echo输出 逗号也可作php连接符
输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。如下4种方式,都能得到同样的结果,但是,只有第4种方式是最好的。
<?php $name = 'cyy'; echo "hello $name <br>"; echo "hello ".$name."<br>"; echo 'hello '.$name.'<br>'; echo 'hello ',$name;
我们先看看第三个情况,php创建一个字符串,包含“Hello”,然后扩充它,加上foo变量(“Tom”),然后,再次扩充它,加上“welcome to phpcn.”语句,然后,echo能使用它。
然而第四的情况是,echo唯一做的一件事是发送“Hello”,接着输出$foo的内容,再输出“welcome to phpcn.”。因为echo仅仅是发送文本而没有创建一个需要扩充内容的字符串。
到这里,就应该明白了优化php字符串连接符,可以提高程序运行速度。而且发现原来“,”逗号也可作php的连接符的,平时大家一般都是使用一点“.”作连接符的。是不是感觉很神奇?