8.1.1 字符串的處理方式1
在C語(yǔ)言中字符串是作為字節(jié)數(shù)組處理的。在Java語(yǔ)言中字符串是作為對(duì)象處理的。而php則把字符串作為基本數(shù)據(jù)類型來(lái)處理。通常對(duì)字符串的處理涉及字符串的格式化。字符串的分割和連接、字符串的比較、以及字符串的查找、匹配和替換。
字符串類型的特點(diǎn)
<?php
echo substr( "1234567", 2, 4 ); //將字串用函數(shù)substr()處理,輸出子字符串 345
echo substr( 123456, 2, 4 ); //將整型用字串函數(shù)處理,輸出同樣是字符串 345
echo hello; //會(huì)先找hello常量,找不到就會(huì)將常名看作是字符串使用
$str = "lamp"; //聲明一個(gè)字符串$str,值為lamp
echo $str."<br>"; //將字符串看作是一個(gè)連續(xù)的實(shí)體,一起輸出 lamp
//以下將字符串看作字符集合,按數(shù)組方式一個(gè)個(gè)字符輸出
echo $str{0}; //輸出字符串$str中第一個(gè)字符 l
echo $str[1]; //輸出字符串$str中第二個(gè)字符 a,[ ] 也可以,不過(guò)已過(guò)時(shí)
echo $str{2}; //輸出字符串$str中第三個(gè)字符 m
echo $str{3}; //輸出字符串$str中第四個(gè)字符 p
echo $str{0}.$str{1}; //輸出字符串$str中前兩個(gè)字符 la
$last = $str{strlen($str)-1}; //獲取字符串$str中最后一個(gè)字符 p
$str{strlen($str)-1} = 'e'; //修改字符串$str中最后一個(gè)字符串,字符串為lame
$str{1} = "nginx"; //使用一個(gè)字串去修改另一字串中的第2個(gè)字符,結(jié)果:lnmp;
雙引號(hào)中變量解析總結(jié)
<?php
//聲明一個(gè)關(guān)聯(lián)數(shù)組,數(shù)組名為$lamp, 成員有4個(gè)
$lamp = array( 'os'=>'Linux', 'webserver' =>'Apache', 'db'=>'MySQL', 'language'=>'php' );
//可以解析,雙引號(hào)中對(duì)于數(shù)組索引,右方括號(hào)(])標(biāo)志著索引的結(jié)束,
//但是注意:不要在[]中使用引號(hào),否則會(huì)在引號(hào)處結(jié)束
echo "A OS is $lamp[os].";
//不能解析,如果在對(duì)關(guān)聯(lián)數(shù)組下標(biāo)使用引號(hào)就必須使用花括號(hào),否則將出錯(cuò)
echo "A OS is $lamp['os'].";
//可以解析,如果在對(duì)關(guān)聯(lián)數(shù)組下標(biāo)使用引號(hào)就必須使用花括號(hào),否則將出錯(cuò)
echo "A OS is {$lamp['os']}.";
//可以解析,注意PHP將數(shù)組下標(biāo)看作常量名,并且常不存在時(shí)將常量名稱轉(zhuǎn)為了字中,效率低
echo "A OS is {$lamp[os]}.";
echo "This square is $square->width meters broad."; //可以解析,對(duì)象中的成員也可以解析
echo "This square is $square->width00 centimeters broad."; //不能解析,可以使用花括號(hào)解決
echo "This square is {$square->width}00 centimeters broad."; //可以解析, 使用花括號(hào)解決
1.php
<?php
/*
* 字符串的聲明 (數(shù)據(jù)類型)
*
* 1. 可以使用雙引號(hào), 也可以使用單引號(hào)
*
* 雙引號(hào)中可以解析變量, 雙引號(hào)中可以使用所有的轉(zhuǎn)義字符
*
* 2. <<<
*
* 分割, 匹配, 查找, 替換
*
*
* 特點(diǎn):如果是其它類型的數(shù)據(jù),也可以使用字符串處理函數(shù)。 先將其它類型自動(dòng)轉(zhuǎn)成了自符串后再處理的
*
*
*/
// echo count("abc");
echo strlen("hello");
echo "<br>";
echo strlen(10000);
2.php
<?php
/*
* 字符串的聲明 (數(shù)據(jù)類型)
*
* 1. 可以使用雙引號(hào), 也可以使用單引號(hào)
*
* 雙引號(hào)中可以解析變量, 雙引號(hào)中可以使用所有的轉(zhuǎn)義字符
*
* 2. <<<
*
* 分割, 匹配, 查找, 替換
*
*
* 特點(diǎn):如果是其它類型的數(shù)據(jù),也可以使用字符串處理函數(shù)。 先將其它類型自動(dòng)轉(zhuǎn)成了自符串后再處理的
*
*
* 字符串可以像數(shù)組一樣,通過(guò)下標(biāo),來(lái)訪問(wèn)到每個(gè)字符。 但不是數(shù)組(數(shù)組也可以通過(guò){}下標(biāo)訪問(wèn)成員)
*
* 除了有英文字符, 還有中文
*/
// echo count("abc");
$str = "abcdefghijklmn";
echo $str[0].$str[1]."<br>";
echo $str{0}.$str{1}."<br>";
$s = "";
for($i=0; $i<strlen($str); $i++) {
if($i%2==0) {
$s .= $str{$i};
}
}
echo $s."<br>";
echo strlen("中國(guó)");