以ltrim為例
先看手冊說明先
ltrim() 函式從字串左側刪除空格或其他預定義字元。
ltrim(string,charlist)引數
描述string
必需。規定要轉換的字串。
charlist
可選。規定從字串中刪除哪些字元。
如果未設定該引數,則全部刪除以下字元:
貌似看不出什麼。看下手冊中的例子。
[php]view plain
copy
<?php
$text
= "\t\tthese are a few words :) ... "
; $binary
= "\x09example string\x0a"
; $hello
= "hello world"
; var_dump($text
, $binary
, $hello
);
print "\n"
; $trimmed
= ltrim(
$text
);
var_dump($trimmed
);
$trimmed
= ltrim(
$text
, " \t."
);
var_dump($trimmed
);
$trimmed
= ltrim(
$hello
, "hdle"
);
var_dump($trimmed
);
// trim the ascii control characters at the beginning of $binary
// (from 0 to 31 inclusive)
$clean
= ltrim(
$binary
, "\x00..\x1f"
);
var_dump($clean
);
?>
以上會輸出:
string(32) " these are a few words :) ... "string(16) " example string
"string(11) "hello world"
string(30) "these are a few words :) ... "
string(30) "these are a few words :) ... "
string(7) "o world"
string(15) "example string
"
貌似只說了過濾空格、製表符什麼的。
當然我們有時候也會這麼寫:
[php]view plain
copy
$str
= 'tmp_member'
; echo
ltrim(
$str
, 'tmpe_'
);
輸出結果為 ember
但是這貌似不是我們想要的結果(member)這是為什麼呢?
我們再寫幾個類似的語句試試先
[php]view plain
copy
$str1
= 'tmp_umember'
; echo
ltrim(
$str1
, 'tmp_'
);
echo''
; $str2
= 'tmp_mpmmtmpmpmmember'
; echo
ltrim(
$str2
, 'tmp_'
);
echo''
; $str3
= 'tmp_mpmmtmpmpmmember'
; echo
ltrim(
$str3
, 'tmpe_'
);
以上的輸出結果為:
umember
ember
ber綜上所述,ltrim函式的第二個引數只是個字元列表而不算做一整個字串,m是字元列表中包含的字元,所以就ltrim掉了。
ltrim過濾的時候遇到非字元列表中的字元就停止過濾,返回過濾後的值。
所以,才會出現上面的三個結果。
同理 rtrim和trim都是這個原理,只不過過濾的方向不一樣罷了。
關於PHP中變數的判定
由於php解釋性語言,所以乙個變數即使沒有定義也可以被使用而不會引起error。請看下面這個例子 輸出的結果是 empty no set null no defined case 0 有其實最後乙個switch判斷,這是乙個比較隱晦的錯誤,所以在使用前進行一次判斷還是有意義的。同時我們可以看到有些的...
PHP中關於佇列的實際應用
一 佇列的概念 資料結構 佇列 queue 是運算受到限制的一種線性表。只允許在表的一端進行插入,而在另一端進行刪除元素的線性表。隊尾 rear 是允許插入的一端。隊頭 front 是允許刪除的一端。空佇列是不含元素的空表。假設有個佇列q a1,a2,an 則a1為隊頭元素,an為隊尾元素。元素入隊...
PHP中關於陣列的運算題
1.寫函式建立長度為10的陣列,陣列中的元素為遞增的奇數,首項為1.function createarr first,length return arr print r createarr 1,10 2.建立長度為10的陣列,陣列中的數為遞增的等比數,比值為3,首項為1.function creat...