php strlen函数在if语句中不起作用
我在函数中使用以下代码:php strlen函数在if语句中不起作用,php,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。为什么这不能正常工作 if
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。为什么这不能正常工作
if ( strlen( $year) > 4 ) {
return "Position year must be a 4 digit year - The ".$year. " length is ".strlen($year);
}
你把圆括号放错地方了。
您可以了解有关此函数的更多信息错误地放置了条件
if ( strlen( $year ) > 4 ) {
return "Position year must be a 4 digit year - The ".$year. " length is ".strlen($year);
}
将返回函数的长度,与长度进行比较是您需要的
strlen($year)>4
,因此当$year字符串长度大于4时,它将返回true,否则返回false 如您所见,您的strlen
的用法是错误的,应该是strlen($year)>4
而不是strlen($year>4)
后一个参数将
$year>4
的值视为strlen
的参数,因此,它返回一个bool(true)
,从而返回字符串。应该是if(strlen($year)>4){…
因为它首先计算$year>4
,然后应用函数strlen
,逻辑是首先应用函数strlen($year)
,然后应用条件if(strlen($year)>4)
其他人已经回答了。问题是括号的顺序。我强烈建议您使用一个非常小的技巧,它可以节省您的时间很多次。每当您打开括号([({)立即关闭它。然后返回并填充内容。;)