2011-11-12 31 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)){