iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
Software Development

PHP 語法通關系列 第 9

Day9 PHP數據類型--基本類型之字串

字串(String)

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

先來看字串簡單介紹吧~

<?php

// 第一種
echo "Hello Winnie <br/>";

// 第二種
echo "Hello";
echo " ";
echo "Winnie";
echo "<br />";  

//字串連接 .
$name = 'Winnie';
$hi = 'Hello';
echo $hi. ' ' .$name;

  • 字串連接:
    串聯運算子(Concatenation Operator),也就是點.
    在PHP是 . 不是+號唷!!!

字串使用的方式

  • 字串有四種使用的方式:
  1. 單引號
  2. 雙引號
  3. Heredoc
  4. Nowdoc

介紹開始:

  1. 單引號
    兩個單引號 ' 包夾一段文字,表字串內容
  • 單引號&跳脫字元:
符號 解釋
' 單引號字元
\ 反斜線字元

因為' ' 為表示字串,如果想輸出 ' ,那就需要跳脫字元,字串中能使用'表示單引號' 。

<?php
    echo 'Winnie\'s article.';             // Winnie's article.
    echo 'C:\\article';                   // C:\article
    echo 'C:\article';                    // C:\article
    echo '這裡不會\n換行';            //這裡不會\n換行
    $sayhi = 'hello';
    echo '這裡不會輸出變數 $sayhi';             // 這裡不會輸出變數 $sayhi
    // PS.不能在最後省略,\'會被解析為字元 ' 而缺少結尾單引號
    //echo 'C:\PHP\'; // Parse error
  1. 雙引號
    以兩個雙引號 " 包夾一段文字,表字串內容
    最主要的重點是,變數會在雙引號中被解析。
  • 在雙引號中使用變數的寫法有三種:
    直接使用:"$variable"
    使用大括號:"{$variable}"

雙引號的跳脫字元:

符號 解釋
\ 反斜線字元
n 換行字元
r 歸位字元
t 水平Tab字元
v 垂直tab字元
f 跳頁字元
$ 錢號字元
" 雙引號字元
<?php
    echo "\"Hi~ Hi~~~~.\" She says hello to you.";  // "Hi~ Hi~~~~." She say hello to you.
    echo "C:\\PHP";                             // C:\PHP
    echo "First line\nsecond line\nthird line";
    // 輸出:
    // First line
    // second line
    // third line
    $sayhi = "hello";
    //使用變數
    echo "She says $sayhi";                       // She says hello
    //使用大括號
    echo "She says {$sayhi}";                     // She says hello
    echo "She says \$sayhi";                      // She says $sayhi

小結論--單雙引號的差別要注意:
單引號的效能比較好(不用判斷是否有變數要輸出),建議都使用單引號。

  1. Heredoc
    適用於字串內容很多很長的時候,如果又想排得很整齊,美觀一點,這時可考慮用其實作用與雙引號差不多的Heredoc裡面自由地使用" ,不需要再加上反斜線
    Heredoc使用<<<符號開始,後面接著一個自訂的標籤,最後以自訂的標籤作結束,而結束的自訂標籤左邊不能有任何空白。
<?php
$sayhi="hello";
// 標籤之後(這裡指EOF後)不能有任何字元
$content=<<<EOF
    這個裡面可以盡情自由地使用"和'
    並且可以直接輸出變數 例如$sayhi
    也可隨便換行+字
    輸出錢號要記得像這樣\$
    附注:EOF可以任意換別的名字,但前後開頭與結尾要一樣
    並保證開始標記和結束標記不在正文中出現即可
EOF;

echo $content;
  1. Nowdoc
    使用方式與heredoc差不多,如果說heredoc是對應雙引號,那nowdoc就是對應單引號,不過nowdoc無法使用跳脫字元,也不會解析變數,也就是純文字的內容。

Day9 Winnie的聊天室

剛開始寫PHP時因為習慣超常字串連接的時候用+,要記好是 . 唷! 然後其實有 .= 的連接用法~~
其實原本是想好要一天,也就是今天講完所有數據類型的基本類型,但沒想到,一寫下去好多想法,有點強迫症,讓我越寫越細,不過既然開頭了,因此每一個數據類型應該都會寫細一點,然後最後再加個類型轉換就算結束數據類型的章節了,然後暫時規劃是接下來是function函式、class類別。

其實蠻有趣的,在寫Markdown也是,要兩個\,才能在你的文章上顯示\,不然it邦文章呈現的時候\會被吃掉


上一篇
Day8 PHP數據類型
下一篇
Day10 PHP數據類型--基本類型之數字與布爾型
系列文
PHP 語法通關30

尚未有邦友留言

立即登入留言