在php裡定義乙個字串的值有多種方式,其中有不少技巧,特蒐集整理在這裡備用。
1、最普通的格式,用雙引號或單引號引用起來的字元,比如
$str="我是雙引號包起來的字串"; 或 $str='我是單引號包起來的字串';
要問二者有什麼區別,在於雙引號包起來的字串可以不需要連線符而直接插入變數,而單引號不會對字串內的變數格式做處理,所以如果要定義拼接變數的字串,用單引號會更快一些。
值得注意的是,經過手動測試,如果定義純粹字串,不拼接不包含變數的話,用雙引號倒是效率高那麼一點點。
2、雙引號包起來的字串內可以直接插入變數,比如直接在要插入變數的位置寫入變數名或者用大括號把變數名包起來,
$str1="第乙個字串變數的內容是:$str,就這麼多。";輸出的時候$str會被替換成對應變數的值。
補充:如果用「文字文字」的方式內嵌變數名,則變數名是你所預期指定的,而如果用「文字$str文字」來內嵌變數名,此時變數會被處理成「$str文字」,而不是你所預期的「$str」。之所以如此,是因為沒有明確用大括號指明變數的時候,php自動處理變數名的時候,是採用的單詞分詞字元作為界限的,這裡一定要注意。分詞字元一般是空格標點符號等。
3、如果不使用直接插入變數的方法定義字串,可以用點號連線多個字串,比如
$str1='第乙個字串變數的內容是:' . $str . ',就這麼多。';
4、如果遇到需要多行書寫的字串怎麼辦,比如我們要定義一段js指令碼,當然如果把指令碼寫在一行裡是沒問題的,但是如果指令碼比較長一些,而且其中會出現很多轉義符號的話,指令碼最終成型的話,很有可能成了一鍋黏粥了。不但格式上不好閱讀,而且一旦出問題要修改的話,也會很羅嗦。那麼有沒有辦法可以把字串直接定義成多行,並且引號之類的需要轉義的字元可以直接輸出呢?答案是肯定的,php早就預料到這種需求了。我們可以這麼定義一段多行字串:
$str=<<<
str'ok',"hello"
i will
str;
其中三個小於號代表多行字串的輸入,str是字串界定符,界定符的名字可以自己定義,兩個界定符之間的內容就是多行字串。其中的單引號雙引號可以直接輸出而不必轉義,當然裡面也可以直接插入變數,輸出是會自動替換變數值的。
5、外加乙個小技巧,當使用 echo進行字串輸出時,如果字串使用拼接方式組成,可以使用逗號來連線需要拼接的各部分字串和變數,比如
echo 'first',"second",$str,"end";
據說這樣輸出速度要快一些,原因在於echo可以接受多個引數,並直接按順序輸出,實際上逗號應該不是拼接字串,而是把不同字串和變數作為引數傳送給echo命令。
PHP加密解密字串彙總 php技巧 指令碼之家
專案中有時我們需要使用php將特定的資訊進行加密,也就是通過加密演算法生成乙個加密字串,這個加密後的字串可以通過解密演算法進行解密,便於程式對解密後的資訊進行處理。最常見的應用在使用者登入以及一些api資料交換的場景。筆者收錄了一些比較經典的php加密解密函式 分享給大家。加密解密原理一般都是通過一...
php 字串函式彙總
1 查詢字元位置函式 strpos str,search,int 查詢search在 str中的第一次位置從int開始 stripos str,search,int 函式返回字串在另乙個字串中第一次出現的位置。該函式對大小寫不敏感 strrpos str,search,int 查詢search在 s...
PHP部分字串函式彙總
strpos str,search,int 查詢search在 str中的第一次位置從int開始 stripos str,search,int 函式返回字串在另乙個字串中第一次出現的位置 strrpos str,search,int 查詢search在 str中的最後一次出現的位置從int subm...