數(shù)字、浮點(diǎn)、布爾型是值類(lèi)型,英文:int、float、bool,這樣你知道他們?cè)趺从昧恕?nbsp;
比如語(yǔ)句:$fa=3.14;
字符串和數(shù)組是引用類(lèi)型,也就是說(shuō)他們作為地址放在棧里,當(dāng)重新賦值時(shí),棧里的地址改變方向,原來(lái)的指向變沒(méi)或給回收了,英文:string、array。
比如:$str=”字符串”;$arr=array(“a”=>”數(shù)”,”b”=>”組”);// array()是一個(gè)數(shù)組賦值函數(shù),這樣的函數(shù)PHP有一千多個(gè),一般常用的不到200個(gè),我覺(jué)得。
字符串操作:
實(shí)例2:字符串合并、相加
復(fù)制代碼代碼如下:
<?php
$str = 1;
echo $str .= ""; //數(shù)字轉(zhuǎn)化為字符串再合并,結(jié)果:"1"。
echo "<br>";
echo $str += "1元"; //字符串轉(zhuǎn)化為數(shù)字再相加,如"1XXX"轉(zhuǎn)化為數(shù)字1,結(jié)果: 2。
echo "<br>";
?>
實(shí)例3:字符串改變大小寫(xiě)
復(fù)制代碼代碼如下:
<?php
$str="12345ABc";
echo strtolower($str);//變小寫(xiě),結(jié)果:"12345abc"。
echo "<br>";
echo strtoupper($str);//變小寫(xiě),結(jié)果:"12345ABC"。
echo "<br>";
?>
實(shí)例4:字符串長(zhǎng)度、截取子字符串(中英文)
復(fù)制代碼代碼如下:
<?php
$str = "字符串2";
echo mb_strlen($str, "UTF-8"); //返回字符串長(zhǎng)度的函數(shù),第二個(gè)參數(shù)是編碼,由于頁(yè)面用UTF-8編碼,所以為這樣。如果省去,返回內(nèi)存占用的字節(jié)數(shù)(ASCII),即10。結(jié)果4
echo "<br>";
echo mb_substr($str, 1, 2, "UTF-8"); //返回字符截取,1為從”符”地址開(kāi)始截取,2為截取2個(gè)"UTF-8"編碼的字符,結(jié)果:“符串”。
echo "<br>";
/**
* 知識(shí)點(diǎn):現(xiàn)在開(kāi)始接觸函數(shù)了,每個(gè)函數(shù)都有()作為堆棧調(diào)用,()里面放0個(gè)或多個(gè)參數(shù),可以自定義可以有默認(rèn)值。而關(guān)鍵字比如echo是沒(méi)有()的。
* 很多書(shū)用GB2312編碼,取長(zhǎng)度和子串時(shí)很麻煩。下面給大家參考一下不用上面的mb中文字符串?dāng)U展庫(kù)實(shí)現(xiàn)原理:
*/
function my_mb_strlen($str, $code = "UTF-8") // 定義一個(gè)新函數(shù),$str是必須傳入的參數(shù)。
{$num= 0;
if ($code == "UTF-8")
{
$str = iconv("UTF-8", "GB2312", $str); //轉(zhuǎn)化為GB2312編碼,ord函數(shù)返回對(duì)應(yīng)的ASCII值判斷每個(gè)字節(jié)該中文字符是否結(jié)束。
for($i = 0;$i < strlen($str);$i++) // 在此strlen($str)返回內(nèi)存占用的字節(jié)數(shù)相當(dāng)于mb_strlen($str)
{
if (ord($str[$i]) > 0xa0)$i++; //$str[$i]對(duì)應(yīng)內(nèi)存的i字節(jié)。如果直接用UTF-8判斷會(huì)復(fù)雜些,因?yàn)榫幋a的多樣性UTF-8是網(wǎng)頁(yè)常用編碼,UTF-16(Unicode)是windows編碼。
$num++;
}
}
else
{
$num = "編碼未實(shí)現(xiàn)";
} //有興趣的自己查資料吧
return $num;
}
echo my_mb_strlen($str) . ";" . my_mb_strlen($str, "GB2312") . "<br>"; //該頁(yè)編碼用UTF-8,你卻說(shuō)傳入的字符串3是GB2312,就算函數(shù)實(shí)現(xiàn)了也無(wú)法正確的。
?>
實(shí)例5:子字符串查找、替換
復(fù)制代碼代碼如下:
<?php
$str = "字符串4";
echo mb_strpos($str, '串4', 0, "UTF-8"); //查找從0開(kāi)始找到的第一個(gè)子字符串位置,結(jié)果:2。如果查找不到,返回空(="");如果最后兩個(gè)參數(shù)不要,返回6。
echo "<br>";
echo mb_strstr($str, '串', 0, "UTF-8"); //截取從0開(kāi)始找到的第一個(gè)子字符串至結(jié)尾,結(jié)果:"串4"。如果查找不到,返回空(="");如果最后兩個(gè)參數(shù)不要,返回相同=strstr($str,'串')。
echo "<br>";
echo str_replace("4", "不是4", $str) ; //字符串替換,結(jié)果: "字符串不是4"。
echo "<br>";
?>
實(shí)例6:子字符串去空、html轉(zhuǎn)義
復(fù)制代碼代碼如下:
<?php
$str=" 字符串5 ";
echo $str=trim($str);//去除兩邊空格,結(jié)果:"字符串5"。
echo "<br>";
echo "color=\"red\"";//\手工轉(zhuǎn)義里面的'、"、\,使之存儲(chǔ)到內(nèi)存,結(jié)果"color="red""
echo "<br>";
$str="<br>123";
echo htmlentities($str) ; //字符串轉(zhuǎn)義<>&'"避免和html標(biāo)識(shí)沖突,使之能在html瀏覽器端顯示出來(lái),結(jié)果:"<br>123"。
echo "<br>";
?>