我现在在做什么:
$length = strlen($string);
if( $length > 5 && $length < $10 )
为了避免双倍长度测量:
if( strlen($string) > 5 && strlen($string) < 10 )
有更好的方法吗?类似的东西:
if( 5 < strlen($string) < 10 )
答案 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版本,平台等。
为了避免在表达式中进行双重评估,您可以构建一个字符串类,并在评估该长度后对其进行缓存以供以后访问。