php strlen函数在if语句中不起作用

时间:2018-04-17 02:34:55

标签: php

我在函数中使用以下代码:

if ( strlen( $year > 4 )) { 
    return "Position year must be a 4 digit year  - The ".$year. " length is ".strlen($year);
}

我传入一个字符串“2014”,应该评估为false。由于某种原因,if语句的计算结果为true并执行返回。返回的字符串实际打印出2014年,strlen值($ year)的长度为4。为什么这不能正常工作?

3 个答案:

答案 0 :(得分:2)

if ( strlen( $year) > 4 ) { 
    return "Position year must be a 4 digit year  - The ".$year. " length is ".strlen($year);
}

你的圆括号位置错误。 您可以详细了解此功能here

答案 1 :(得分:0)

错误地放置了条件

if ( strlen( $year ) > 4 ) { 
    return "Position year must be a 4 digit year  - The ".$year. " length is ".strlen($year);
}

strlen将返回函数的长度,并且与长度进行比较是您需要strlen( $year ) > 4所以当$ year字符串长度大于4时返回true,否则返回false。

答案 2 :(得分:0)

正如您所看到的,您strlen的使用是错误的,它应该是strlen($year) > 4而不是strlen( $year > 4 )
后一个参数会将$year > 4的值视为strlen的参数,因此会返回bool(true),从而返回字符串。