php不正确的比较行为

时间:2011-11-12 19:08:45

标签: php string string-comparison string-length

$string = '540';

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

如果$string长于34个字符,则应附加“...”,否则只应打印字符串。

我认为正在发生的事情是解释器在进行比较时假设字符串是一个数字。

如果我将$string更改为

,它也会出现相同的打嗝
$string = '540 rocks !'

为什么会这样?

2 个答案:

答案 0 :(得分:2)

如果您要进行的测试是在字符串长度上,只需更改此行:

if ($string >= 34)){

进入这个:

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

答案 1 :(得分:2)

应该是:

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

if ($string >= 34)){