2011-11-12 58 views
1
$string = '540'; 

if (strlen ($string >= 34)){ 
    print_r((substr($string, 0, 30) . "...")); 
} else { 
    print_r(($string)); 
} 

如果$string超過34個字符,它應該附加一個「...」,否則它應該只是打印字符串。php不當比較行爲

我認爲發生的事情是解釋器假設字符串是一個數字,當它進行比較。

它也有同樣的打嗝,如果我改變$string

$string = '540 rocks !' 

這是爲什麼?

+3

是什麼讓你認爲'>'比較*數字的數量? –

+1

另外,你不需要雙括號,所以把你的'print_r(($ string))'改爲'print_r($ string)'。 – Ryan

+0

我的不好。 。 。我在衝,沒有注意到括號 – TuK

回答

2

應該是:

if (strlen($string) >= 34)) { 

if ($string >= 34)){ 
2

如果你想要做的測試是字符串的長度,只是改變這一行:

if ($string >= 34)){ 

成這樣:

if (strlen($string) >= 34)){