字符串數(shù)組類型
PHP數(shù)據(jù)類型
1)標量數(shù)據(jù)類型:整型,浮點型,字符串類型,布爾類型
2)復雜數(shù)據(jù)類型:數(shù)據(jù),對象
3)特殊數(shù)據(jù)類型:null,資源型
單引號
- 不解析變量(單引號傳入什么就是什么)
- 單引號中包含單引號需要轉(zhuǎn)義
- 單引號中可以包含雙引號
雙引號
- 解析變量( {} 指定變量的邊界 )
- 雙引號中包含雙引號需要轉(zhuǎn)義
- 變量最好使用變量{}邊界符號
- 單引號與雙引號嵌套的問題:只有最外層是雙引號時,才能解析變量
雙引號中包含單引號
$str4 = " '$hi' word "; //雙引號中包含單引號
// 'hello' word
heredoc字符串定義結(jié)構(gòu)
單引號 雙引號在多行字符串.復雜字符串如js代碼的定義時顯得不便
語法:
$str = <<<heredoc標記名
字符串內(nèi)容
heredoc標記名;(不能有縮進)
注意:可以解析變量 單引號及雙引號不需要轉(zhuǎn)義或者處理. 一般用于保存較長字符串或者js代碼;
字符串長度問題
1)計算長度的函數(shù) strlen
$str1 = "hello word";
echo strlen($str1); // 10 每個英文字符占一個字節(jié)
$str2 = "前段與移動開發(fā)";
echo "<br>" , strlen($str2); //21 每個漢字字符占三個字節(jié)
2)多字節(jié)字符串長度問題
UTF-8字符集中,一個漢字占3個字節(jié),一個英文字符占1個字節(jié)
GBK字符集中,一個漢字字符占2個字節(jié),一個英文字符占1個字節(jié)
3)多字節(jié)字符串,如何計算字符串的字符數(shù)?
mb_strlen()
//求字符串的字符數(shù)
$str = "前段開發(fā)學院";
echo "此字符串的字符數(shù)為",mb_strlen($str,"utf8"); // 此字符串的字符數(shù)為6
字符串相關(guān)函數(shù)
1.字符串輸出函數(shù)printf()
1)printf
占位符:%d 十進制有符號整數(shù) %s 字符串
注意事項 : 占位符與參數(shù)列表一一對應.
$name = "李華";
$age = 30;
printf("%s今年%s歲了",$name,$age);
//李華今年30歲了
2)str_replace()
返回值:字符串或者數(shù)組.
語法
str_replace(mixed $search,mixed $replace , mixed $subject)
該函數(shù)返回一個字符串或者數(shù)組,返回的是將subject中全部的search都被replace替換之后的結(jié)果
$str = "hello word";
$str = str_replace("hello","你好",$str);
echo $str;
//你好 word
echo "<br>";
$arr = [1,2,3,4];
//改變數(shù)組的值
$arr = str_replace("2","世界",$arr);
print_r($arr);
//Array (
[0] => 1
[1] => 世界
[2] => 3
[3] => 4
);
2)str_repeat()
大小寫轉(zhuǎn)換函數(shù)
1)strtolower() 轉(zhuǎn)換成小寫
lower case :小寫
2)strtoupper()轉(zhuǎn)換成大寫
$str1 = "Hello Word";
$str1 = strtolower($str1);
echo $str1 , "<br>";
//hello word
$str1 = strtoupper($str1);
echo $str1;
// HELLO WORD
3)unfirst()
將str的首字符(如果首字符是字母)轉(zhuǎn)換為大寫字母,并返回這個字符串
去除空白函數(shù)
1)trim(),ltrim(),rtrim()
此函數(shù)返回字符串str去除收尾空白字符后的結(jié)果
數(shù)組與字符串轉(zhuǎn)換函數(shù)
1)explode() 將字符串切割為數(shù)組
語法:
explode(分割符,目標字符串)
$str = "www.baidu.com";
$arr1 = explode(".",$str);
print_r($arr1);
//Array ( [0] => www [1] => baidu [2] => com )
2)implode()將數(shù)組連接成字符串
語法:
implode(連接的字符,數(shù)組)
3)str_split()
注意:按照字節(jié)進行切割(英文1個字符1個字節(jié),漢字1字符3個字節(jié))
將字符串分成指定長度(默認為1字節(jié))的字符串,返回數(shù)組
返回值:數(shù)組;
語法:
str_split($str,字符串長度)
$str = "helloword";
$arr = str_split($str,2);
print_r($arr);
//Array (
// [0] => he
// [1] => ll
// [2] => ow
// [3] => or
// [4] => d
// )
位置查找函數(shù)
返回值:子字符串下標,若未查找到,返回值為false,不顯示
1)strpos()
從左側(cè)開始查找,下標從0開始
strpos(目標字符串,要查找的子字符串);
2)strrpos()
從右側(cè)開始查找,下標從0開始
strrpos(目標字符串,要查找的子字符串);
``
$str = "hello.php";
//從左側(cè)開始查找子字符串在目標字符串中的位置;下標從0開始
$num = strpos($str,"p");
echo $num; // 6
//從右側(cè)開始查找子字符串在目標字符串中的位置;下表從0開始
$num1 = strrpos($str,"p");
echo $num1;//8