8.1.2 字符串的处理方式2
在C语言中字符串是作为字节数组处理的。在Java语言中字符串是作为对象处理的。而php则把字符串作为基本数据类型来处理。通常对字符串的处理涉及字符串的格式化。字符串的分割和连接、字符串的比较、以及字符串的查找、匹配和替换。
字符串类型的特点
<?php
echo substr( "1234567", 2, 4 ); //将字串用函数substr()处理,输出子字符串 345
echo substr( 123456, 2, 4 ); //将整型用字串函数处理,输出同样是字符串 345
echo hello; //会先找hello常量,找不到就会将常名看作是字符串使用
$str = "lamp"; //声明一个字符串$str,值为lamp
echo $str."<br>"; //将字符串看作是一个连续的实体,一起输出 lamp
//以下将字符串看作字符集合,按数组方式一个个字符输出
echo $str{0}; //输出字符串$str中第一个字符 l
echo $str[1]; //输出字符串$str中第二个字符 a,[ ] 也可以,不过已过时
echo $str{2}; //输出字符串$str中第三个字符 m
echo $str{3}; //输出字符串$str中第四个字符 p
echo $str{0}.$str{1}; //输出字符串$str中前两个字符 la
$last = $str{strlen($str)-1}; //获取字符串$str中最后一个字符 p
$str{strlen($str)-1} = 'e'; //修改字符串$str中最后一个字符串,字符串为lame
$str{1} = "nginx"; //使用一个字串去修改另一字串中的第2个字符,结果:lnmp;
双引号中变量解析总结
<?php
//声明一个关联数组,数组名为$lamp, 成员有4个
$lamp = array( 'os'=>'Linux', 'webserver' =>'Apache', 'db'=>'MySQL', 'language'=>'php' );
//可以解析,双引号中对于数组索引,右方括号(])标志着索引的结束,
//但是注意:不要在[]中使用引号,否则会在引号处结束
echo "A OS is $lamp[os].";
//不能解析,如果在对关联数组下标使用引号就必须使用花括号,否则将出错
echo "A OS is $lamp['os'].";
//可以解析,如果在对关联数组下标使用引号就必须使用花括号,否则将出错
echo "A OS is {$lamp['os']}.";
//可以解析,注意PHP将数组下标看作常量名,并且常不存在时将常量名称转为了字中,效率低
echo "A OS is {$lamp[os]}.";
echo "This square is $square->width meters broad."; //可以解析,对象中的成员也可以解析
echo "This square is $square->width00 centimeters broad."; //不能解析,可以使用花括号解决
echo "This square is {$square->width}00 centimeters broad."; //可以解析, 使用花括号解决
1.php
<?php
/*
* 字符串的声明 (数据类型)
*
* 1. 可以使用双引号, 也可以使用单引号
*
* 双引号中可以解析变量, 双引号中可以使用所有的转义字符
*
* 2. <<<
*
* 分割, 匹配, 查找, 替换
*
*
* 特点:如果是其它类型的数据,也可以使用字符串处理函数。 先将其它类型自动转成了自符串后再处理的
*
*
* 字符串可以像数组一样,通过下标,来访问到每个字符。 但不是数组(数组也可以通过{}下标访问成员)
*
* 除了有英文字符, 还有中文
*/
// echo count("abc");
$str = "hello";
$str[2]="world";
var_dump($str);
test.php
<?php
/*
* 字符串的声明 (数据类型)
*
* 1. 可以使用双引号, 也可以使用单引号
*
* 双引号中可以解析变量, 双引号中可以使用所有的转义字符
*
* 2. <<<
*
* 分割, 匹配, 查找, 替换
*
*
* 特点:如果是其它类型的数据,也可以使用字符串处理函数。 先将其它类型自动转成了自符串后再处理的
*
*
* 字符串可以像数组一样,通过下标,来访问到每个字符。 但不是数组(数组也可以通过{}下标访问成员)
*
* 除了有英文字符, 还有中文
*/
// echo count("abc");
define("one", "two");
$int = array("one"=>100, "two"=>200);
class Demo {
var $one=100;
}
$d = new Demo;
echo "aaaaaaaaaaaa{$d->one}aaaaaaaaaaaaaa<br>";
echo "aaaaaaaaaaaa{$int["one"]}aaaaaaaaaaaaaa<br>";