進度條

【PHP】06. 字串(String)

【PHP】06. 字串(String)

作者: 進度條編輯群 更新日期:

此文章也有影片介紹,可以搭配影片一起學習!

01. 字串(String) (所屬課程)


以下正式開始文章


本章節會先簡單介紹字串的組合,至於字串的其他處理會在函數課程後再詳細介紹。 

 

 

字串(String)

字串(String)就是一連串的字元,

例如上方單純的字串,我們也可以把它拆開如下。

 

<? php

// 第一種
echo "Progress Bar <br/>";

// 第二種
echo "Progress";
echo " ";
echo "Bar";
echo "<br />";  

?> 

 

輸出後可以得到相同的結果(下圖顯示兩個,實際上第二個才是我們顯示出來的)。

如果你不懂<br/>是什麼,請先看看HTML課程喔!

 

 

串聯運算子(Concatenation Operator)

但這樣拆成四行實在太麻煩了,如果我們想把它拆成四個字串,又保持在同一行的話,我們可以運用串聯運算子(Concatenation Operator),也就是點.,將字元串在一起。(依照個人習慣,若全為字串,點與點中間可以不用加上空白)

 

<? php

echo "Progress"  " "  .  "Bar"  .  "<br />";

?> 

 

輸出後也是相同的結果。(第二組雙引號中間有空白)

 

 

若套用上堂變數的概念,可以利用串聯運算子(也就是點)把字串串聯再一起,再用echo將變數與串聯的字串印出,依照需求達成多種變化。

 

<? php

$string = "Progress"." ";
echo $string . "Bar" . "<br />";

?> 

 

輸出後也是相同的結果。
 

 

如果你對Java Script熟悉的話,你會知道Java Script的字串串連是用加號+,而php是用.,但是在php如果用加號+的話,會是不一樣的結果。

 

<?php

echo "Progress" . " "."Bar"."<br />";

?> 

 

輸出結果如下:
 

 

順道一提,在Java Script或其他語言點號.代表運算子,後面接的是物件的屬性或方法。

變數的行為

如同上一堂課所言,變數的值是可以被替換的,例如下方的例子:

 

<? php

$X = "甲";
$X = "乙";
echo $X;

?> 

 

輸出值會是甲。

 

另外,若是

 

<? php

$X = "甲";
$X = $X . "乙";
echo $X;

?>

 

輸出值會是甲乙。

為什麼呢? 我們看到這一行 $X = $X . "乙";

如同之前課程所說的,= 符號代表「被賦予」。

 

就是要從右邊往左看(對於沒學過程式語言的初學者可能會有點吃力,這邊的=和數學的等於符號解讀有點不一樣)。
所以,等於右邊的$X代表甲,而甲與乙串聯後賦予到左方的$X,
這個串聯後的字串就是甲乙。


那我們再回到課程上的練習,

 

 <? php

  // 影片中前面還有三次 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標籤作為字串的基本輸出方式。

 

<? php

  echo "<p>學生列表</p>";
  echo "<ul>";
  echo "<li>小明</li>";
  echo "<li>老王</li>";
  echo "</ul>";
  echo "<hr/>";

?> 

 

輸出結果如下:

 

 

若是在純HTML的世界裡,不使用PHP也能達到相同的效果,那麼為什麼我們要加上PHP語法呢? 如同先前所言,HTML可以顯示靜態網頁,而PHP可以連接資料庫,形成動態網頁,雖然一開始會很麻煩,但如果你在之後有一堆資料庫需要替換的話,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,

 

<? php

  $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一樣,()括號可加可不加。
 

<? php

$string = "Progress Bar"
print( $string;)

?> 

 


輸出結果如下:

 

 

 

 

echo也可以放括號

 

echo ("<hr>");

 

輸出結果如下: 

 

 

var_dump() 函式
var_dump是一個很好用的功能,除了可以將變數資料印出來外,還可以輸出該字串的長度。例如有時你不知道變數目前被替換成哪個字串的時候,可以利用它來Debug。


例如這次尋找先前$string

 

  var_dump($string);

 

輸出結果如下:

目前有19個字元,輸出的值為Progress Bar。

 

 

此時我們可以理解輸出的值(Progress)不一定等於我們實際上輸入的值,而是處理後的結果,我們也可以利用下方測試的值看看。

var_dump ("Progress Bar <br/>")

 

輸出結果仍是一樣

 

 

若將程式碼刪除一個字元,

 

var_dump ("Progress Bar <br/")

 

則變成18個字元了!

 

 

若改成P

 

var_dump ("P") 

 

則變成1個字元了!

 

 

這堂課到這裡,下堂課我們來學習除裡數字的部分吧!

 

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Small logo

進度條編輯群

進度條編輯團隊