0

組み合わせる方法はありますか

 if ((strpos($str,"abc") !== false) and (strpos($str,"abc") < 1000))

それとも、そのために2つのifが必要ですか? abc が文字列に含まれていない場合、位置は -1 で 1000 よりも小さいためです。

私が興味があるのは、php にこの問題に対する特別な機能があるかどうかだけです ;)

これは:

if (strpos(substr($str,0,1000),"abc") !== false) 

そのための良い方法は?

4

3 に答える 3

2
$pos_abc = strpos($str, 'abc');
if ($pos_abc !== false && $pos_abc < 1000)

2 つの異なることをテストしたい: 1-abc文字列の中にある? 2- はabcその文字列の最初の 1000 文字です。1 回のテストで書き直すことは可能ですが、何のメリットもありません。実際には、コードを明確にするために多くのコストがかかります。

于 2013-10-02T09:00:12.767 に答える
0

必要に応じてこれを試すことができます:

if( in_array(strpos($str,"abc"),range(0,1000),true))

しかし、見た目はそれほど単純ではなく、かなり厳しいパフォーマンス コストがかかります。

おそらく、変数を使用するのが最善の方法でしょう。

$pos = strpos($str,"abc");
if( $pos !== false && $pos < 1000) ...
于 2013-10-02T09:00:42.163 に答える