有没有办法结合
if ((strpos($str,"abc") !== false) and (strpos($str,"abc") < 1000))
或者我需要两个ifs吗?因为如果 abc 不在字符串中,则位置为 -1,因此小于 1000。
我只对 php 对这个问题有什么特别感兴趣;)
这是:
if (strpos(substr($str,0,1000),"abc") !== false)
一个好方法吗?
$pos_abc = strpos($str, 'abc');
if ($pos_abc !== false && $pos_abc < 1000)
你想测试两个不同的东西: 1-abc
在字符串中?并且 2-abc
在该字符串的前一千个字符中。虽然可以在单个测试中重写它,但它没有任何好处,而且实际上会花费很多代码的清晰度。
如果你愿意,你可以试试这个:
if( in_array(strpos($str,"abc"),range(0,1000),true))
然而,它看起来并不简单,而且它的性能成本相当高。
也许最好的方法是使用变量:
$pos = strpos($str,"abc");
if( $pos !== false && $pos < 1000) ...
两个问题:
更新:
好又快的解决方案模式:
if(($pos = strpos($str,"abc") !== false)?($pos < 1000):false)
漂亮干净的解决方案模式:
$pos = strpos($str,"abc");
if(($pos !== false)?($pos < 1000):false)