Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php strlen函数在if语句中不起作用_Php - Fatal编程技术网

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)
其他人已经回答了。问题是括号的顺序。我强烈建议您使用一个非常小的技巧,它可以节省您的时间很多次。每当您打开括号([({)立即关闭它。然后返回并填充内容。;)