找出一个值是否在PHP中的一个if子句的范围内?

时间:2014-11-23 10:59:51

标签: php if-statement operators string-length

我现在在做什么:

$length = strlen($string);
if( $length > 5 && $length < $10 )

为了避免双倍长度测量:

if( strlen($string) > 5 && strlen($string) < 10 ) 

有更好的方法吗?类似的东西:

if( 5 < strlen($string) < 10 )

2 个答案:

答案 0 :(得分:0)

PHP中的运算符之间没有。你可以这样做:

if (in_array($someVar, range($min, $max)))

if (in_array(strlen($string), range(6, 9))) // In your case 5 and 10 are not included

你正在做的事情很干净,而且可能比in_array +范围快一点。

答案 1 :(得分:0)

不幸的是,在PHP中没有保证的表达式评估顺序:see PHP language developer discussion here。所以,避免你的exapmle中的临时变量将有风险,取决于PHP版本,平台等。

为了避免在表达式中进行双重评估,您可以构建一个字符串类,并在评估该长度后对其进行缓存以供以后访问。