【PHP】06. 字串(String)
【PHP】06. 字串(String)
此文章也有影片介紹,可以搭配影片一起學習!
01. 字串(String) (所屬課程)
本章節會先簡單介紹字串的組合,至於字串的其他處理會在函數課程後再詳細介紹。
字串(String)
字串(String)就是一連串的字元,
例如上方單純的字串,我們也可以把它拆開如下。
// 第一種
echo "Progress Bar <br/>";
// 第二種
echo "Progress";
echo " ";
echo "Bar";
echo "<br />";
?>
輸出後可以得到相同的結果(下圖顯示兩個,實際上第二個才是我們顯示出來的)。
如果你不懂<br/>是什麼,請先看看HTML課程喔!
串聯運算子(Concatenation Operator)
但這樣拆成四行實在太麻煩了,如果我們想把它拆成四個字串,又保持在同一行的話,我們可以運用串聯運算子(Concatenation Operator),也就是點.,將字元串在一起。(依照個人習慣,若全為字串,點與點中間可以不用加上空白)
echo "Progress" . " " . "Bar" . "<br />";
?>
輸出後也是相同的結果。(第二組雙引號中間有空白)
若套用上堂變數的概念,可以利用串聯運算子(也就是點)把字串串聯再一起,再用echo將變數與串聯的字串印出,依照需求達成多種變化。
$string = "Progress"." ";
echo $string . "Bar" . "<br />";
?>
輸出後也是相同的結果。
如果你對Java Script熟悉的話,你會知道Java Script的字串串連是用加號+,而php是用.,但是在php如果用加號+的話,會是不一樣的結果。
// 此用 + 為錯誤寫法,只是提醒不是這樣寫
echo "Progress" + " " . "Bar" . "<br />";
?>
輸出結果如下:
順道一提,在Java Script或其他語言點號.代表運算子,後面接的是物件的屬性或方法。
變數的行為
如同上一堂課所言,變數的值是可以被替換的,例如下方的例子:
$X = "甲";
$X = "乙";
echo $X;
?>
輸出值會是乙。
另外,若是
$X = "甲";
$X = $X . "乙";
echo $X;
?>
輸出值會是甲乙。
為什麼呢? 我們看到這一行 $X = $X . "乙";
如同之前課程所說的,= 符號代表「被賦予」。
就是要從右邊往左看(對於沒學過程式語言的初學者可能會有點吃力,這邊的=和數學的等於符號解讀有點不一樣)。
所以,等於右邊的$X代表甲,而甲與乙串聯後賦予到左方的$X,
這個串聯後的字串就是甲乙。
那我們再回到課程上的練習,
// 影片中前面還有三次 echo "Progress Bar";
// 但是這邊忽略。
// <br/> 印出來後才會換行喔!!
$string = "Progress"." ";
// 下圖第四行 echo
echo $string."Bar"."<br />";
// 下圖第五行 echo
echo $string;
echo "<br />";
$string = $string . " " . "Bar" . "<br />";
// 下圖第六行 echo
echo $string;
?>
下圖第五行輸出值為Progress
第五行右方的$string代表第一行的"Progress"." "
因此,第六行 $string 值為 "Progress". " " . "Bar" . "<br />輸出值為 Progress Bar。
也可以參考下方整理後的版本。
網站就是HTML的組合,所以PHP最重要的工作之一就是把HTML文字輸出出去。
因此我們接下來就講輸出HTML字串吧!
HTML標籤字串
下方為把HTML標籤作為字串的基本輸出方式。
echo "<p>學生列表</p>";
echo "<ul>";
echo "<li>小明</li>";
echo "<li>老王</li>";
echo "</ul>";
echo "<hr/>";
?>
輸出結果如下:
若是在純HTML的世界裡,不使用PHP也能達到相同的效果,那麼為什麼我們要加上PHP語法呢? 如同先前所言,HTML可以顯示靜態網頁,而PHP可以連接資料庫,形成動態網頁,雖然一開始會很麻煩,但如果你在之後有一堆資料庫需要替換的話,PHP語法的價值就出現了。
我們也可以利用更改變數的值來修改內容:
$listTitle = "學生列表";
$firstStudentName = "小明";
$secondStudentName = "老王";
echo "<p>". $listTitle ."</p>";
echo "<ul>";
echo "<li>". $firstStudentName ."</li>";
echo "<li>". $secondStudentName ."</li>";
echo "</ul>";
echo ("<hr/>");
?>
輸出結果如下:
如果將$firstStudentName的值改成小明1,
$listTitle = "學生列表";
$firstStudentName = "小明1";
$secondStudentName = "老王";
echo "<p>". $listTitle ."</p>";
echo "<ul>";
echo "<li>". $firstStudentName ."</li>";
echo "<li>". $secondStudentName ."</li>";
echo "</ul>";
echo ("<hr/>");
?>
則輸出結果也會變成小明1,
目前看起來似乎都是手動更改,但是之後學會矩陣和迴圈以後,可以寫出更複雜的程式,做出更複雜的功能。
echo()和print()
利用print()可以做出和echo一樣的效果,和echo一樣,()括號可加可不加。
$string = "Progress Bar"
print( $string;)
?>
輸出結果如下:
echo也可以放括號
輸出結果如下:
var_dump() 函式
var_dump是一個很好用的功能,除了可以將變數資料印出來外,還可以輸出該字串的長度。例如有時你不知道變數目前被替換成哪個字串的時候,可以利用它來Debug。
例如這次尋找先前$string
輸出結果如下:
目前有19個字元,輸出的值為Progress Bar。
此時我們可以理解輸出的值(Progress)不一定等於我們實際上輸入的值,而是處理後的結果,我們也可以利用下方測試的值看看。
輸出結果仍是一樣
若將程式碼刪除一個字元,
則變成18個字元了!
若改成P
則變成1個字元了!
這堂課到這裡,下堂課我們來學習除裡數字的部分吧!
最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!