8.1.1 字符串的處理方式1
在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");
echo strlen("hello");
echo "<br>";
echo strlen(10000);
2.php
<?php
/*
* 字符串的聲明 (數據類型)
*
* 1. 可以使用雙引號, 也可以使用單引號
*
* 雙引號中可以解析變量, 雙引號中可以使用所有的轉義字符
*
* 2. <<<
*
* 分割, 匹配, 查找, 替換
*
*
* 特點:如果是其它類型的數據,也可以使用字符串處理函數。 先將其它類型自動轉成了自符串后再處理的
*
*
* 字符串可以像數組一樣,通過下標,來訪問到每個字符。 但不是數組(數組也可以通過{}下標訪問成員)
*
* 除了有英文字符, 還有中文
*/
// 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("中國");