php基礎(chǔ)字符串與數(shù)組知識(shí)點(diǎn)講解
目錄
- 字符串
- 打印
- 字符串–引號
- 字符串–多行引號
- 數(shù)組-對象
- 索引數(shù)組
- 關(guān)聯(lián)數(shù)組
字符串
打印
打印函數(shù)
echo: 打印值,用于單值
print_r(): 人類可讀方式打印,用于數(shù)組
var_dump():打印結(jié)構(gòu)和類型,一般用于對象
數(shù)據(jù)類型一般分為字符串,數(shù)值,布爾,數(shù)組
//單值 $data="我是php"; echo $data; // 我是php $data2 = 123; echo $data2; // 123 $data3 = true; echo $data3; // 1 // $data4打印的為空 $data4 = false; echo $data4; //
如果使用echo
打開布爾類型時(shí),打開true
的話,會(huì)打印出1,而打開false
時(shí),會(huì)打印為空
如果使用var_dump()
來打印的話,那么就可以正確的打印出來了
$data3 = true; var_dump($data3); // bool(true) $data4 = false; var_dump($data4); // bool(false)
但是如果使用print_r()
呢?會(huì)打印什么呢?試一下吧
$data3 = true; $data4 = false; print_r($data3); // 1 print_r($data4); //
使用print_r()
同樣的,跟echo
打印的內(nèi)容是一個(gè)的,true
為1,false
為空
echo
只能打印單值,不能打印數(shù)組對象;
var_dump()
可打印單值,也可打印數(shù)組對象;
$arr1 = ["小明","小李","小剛"]; var_dump($arr1); // array(3) { [0]=> string(6) "小明" [1]=> string(6) "小李" [2]=> string(6) "小剛" }
字符串–引號
- 單引號: 適合無變量,無轉(zhuǎn)義字符
- 雙引號: 適合有變量,有轉(zhuǎn)義字符
$title = "文章標(biāo)題"; echo "<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >$title</a>". "<br>"; // <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >$title</a> echo "<a href="#">$title</a>"; // <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >文章標(biāo)題</a>
上面的兩條代碼,第二條完整的打印出我想要的內(nèi)容了
所以,雙引號是可以放變量的,那假如有多行的字符串時(shí),怎么辦呢
字符串–多行引號
如果一個(gè)字符串中,有多行的話,就可以使用nowdoc
或heredoc
$title = "三字經(jīng)"; $str = <<< doc <h4>$title</h4> 人之初,性本善。性相近,習(xí)相遠(yuǎn)。 茍不教,性乃遷。教之道,貴以專。 昔孟母,擇鄰處。子不學(xué),斷機(jī)杼。 竇燕山,有義方。教五子,名俱揚(yáng)。 doc; echo nl2br($str); // <h4>三字經(jīng)</h4><br /> // 人之初,性本善。性相近,習(xí)相遠(yuǎn)。<br /> // 茍不教,性乃遷。教之道,貴以專。<br /> // 昔孟母,擇鄰處。子不學(xué),斷機(jī)杼。<br /> // 竇燕山,有義方。教五子,名俱揚(yáng)。
上面的代碼已正常打印出來
在這里說明一下,doc
和結(jié)束的doc
都可以隨便命名的,但是名稱必須要一樣就可以了,上面的開始doc
默認(rèn)是雙引號的,單引號可自行測試
數(shù)組-對象
數(shù)組有分索引數(shù)組和關(guān)聯(lián)數(shù)組
索引數(shù)組
下面定義的$data
就是索引數(shù)組,中括號里面以=>
為區(qū)分,左邊數(shù)字為索引,右邊為值
$data = [1=>"小明",2=>"小李",3=>"小張",4=>"小剛"];
同樣的,跟javascript
類型,數(shù)組中的索引可以不寫,那么默認(rèn)索引將會(huì)從0開始
$data = ["小明","小李","小張","小剛"];
那么我們直接輸入看下是怎么樣的
$data = [1=>"小明",2=>"小李",3=>"小張",4=>"小剛"]; print_r($data); // Array ( [1] => 小明 [2] => 小李 [3] => 小張 [4] => 小剛 ) $data = ["小明","小李","小張","小剛"]; print_r($data); // Array ( [0] => 小明 [1] => 小李 [2] => 小張 [3] => 小剛 )
可以看出來,輸出的東西是一樣的,只是索引卻不一樣,第一條索引從1開始,第二條從0開始
但是這里我們就會(huì)有一個(gè)新的需求了,這個(gè)數(shù)組看起來很費(fèi)勁,那么我們能不能格式化一下呢
$data = ["小明","小李","小張","小剛"]; $str = print_r($data, true); echo "<pre>$str</pre>"; // Array // ( // [0] => 小明 // [1] => 小李 // [2] => 小張 // [3] => 小剛 // )
這樣就清晰很多了
當(dāng)然也有另外的方法,比如使用printf(模板,插值):
$data = ["小明","小李","小張","小剛"]; // 這里要說明一下,print_r($str, bool)第二個(gè)變量如果為false,直接輸入結(jié)果,如果為true,不輸出,直接將結(jié)果賦值給一個(gè)變量 $str = print_r($data, true); // %s: string, %d: integer, %f: float printf("<pre>%s</pre>",$str); // Array // ( // [0] => 小明 // [1] => 小李 // [2] => 小張 // [3] => 小剛 // )
輸出的內(nèi)容跟上面是一樣的
索引數(shù)組解構(gòu)
$data = ["小明","小李","小張","小剛"]; list($name1, $name2, $name3, $name4) = $data; echo $name1; // 小明 echo $name4; // 小剛
關(guān)聯(lián)數(shù)組
下面的數(shù)組就是關(guān)聯(lián)數(shù)組,打印一下看看
$data = ["name"=>"小明","age"=>18,"job"=>"工程師","address"=>"中國"]; print_r($data); // Array ( [name] => 小明 [age] => 18 [job] => 工程師 [address] => 中國 )
關(guān)聯(lián)數(shù)組=>
左邊的是鍵,右邊的是值
關(guān)聯(lián)數(shù)組解構(gòu)
$data = ["name"=>"小明","age"=>18,"job"=>"工程師","address"=>"中國"]; ["name"=>$name, "age"=>$age, "job"=>$job, "address"=>$address] = $data; echo $name; // 小明
快速解構(gòu)關(guān)聯(lián)數(shù)組
$data = ["name"=>"小明","age"=>18,"job"=>"工程師","address"=>"中國"]; extract($data); printf("%s, %d, %s, %s", $name, $age, $job, $address); // 小明, 18, 工程師, 中國
到此這篇關(guān)于php基礎(chǔ)字符串與數(shù)組知識(shí)點(diǎn)講解的文章就介紹到這了,更多相關(guān)php字符串與數(shù)組內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
相關(guān)文章:
