<?php
$efFect=0;
$find='is';
$find_len=strlen($find);
$string22 ='this is space is function';
while ($str_position =strpos($string22,$find,$effect)){
echo $find.'the postion in '. $str_position.'<br>';
$efFect = $str_position + $find_len ;
}
?>
答えて
0は偽の値です。 strposが実際にfalseを返すかどうかをチェックすることで、より信頼できるチェックを行うべきです。ドキュメントから
<?php
$effect=0; // not $efFect as variables names are case sensitive in PHP
$find='is';
$find_len=strlen($find);
$string22 ='this is space is function';
while (($str_position = strpos($string22, $find, $effect)) !== False){
echo $find.'the postion in '. $str_position.'<br>';
$effect = $str_position + $find_len ;
}
?>
:
は、針が(オフセットとは無関係に)文字列haystackの先頭からの相対存在する場所の位置を返します。また、文字列の位置は0ではなく1から始まることに注意してください。
針が見つからない場合はFALSEを返します。
あなたのコードは無限ループを作成すると述べたが、そうではない。 strpos
は、正しく使用した第3のパラメータとしてoffset
を受け入れます。各反復でオフセットが増分され、最後に見つかった結果文字列が終了する位置で新しい検索が開始され、無限ループが回避されます。
なぜdownvote?理由? –
ありがとうございました –
私は$ effectをオフセットに変更しました –
- 1. なぜPythonはbashコードを実行しないのですか?
- 2. whileループがこのコードで0で停止するのはなぜですか?
- 3. なぜResponse.Redirectは次のコード行を実行しないのですか?
- 4. なぜ私のドライバはwhileループを実行しませんか?
- 5. Javascriptコードが実行されないのはなぜですか?
- 6. Javaコードが実行されないのはなぜですか?
- 7. なぜbashはカールの後でコードを実行しないのですか?
- 8. Java - なぜsystem.exit(0)が実行されないのですか?
- 9. jsコードを角括弧内で実行しないのはなぜですか?
- 10. setTimeout(..、0)がすぐに実行されないのはなぜですか?
- 11. なぜ私のコードは0を出力していますか?
- 12. なぜ私のコードを実行できないのですか?
- 13. なぜ私のPythonコードはwhileループをスキップしますか?
- 14. なぜ!(0 || 1 || 0)は0ですか?
- 15. なぜコードは正しく実行されないのですか?
- 16. このコードを実行できないのはなぜですか?
- 17. なぜマクロ定義でdo()while(0)を使うのですか?
- 18. このループはコードをループしますが、正しいアクションを実行しないのはなぜですか?
- 19. なぜ0ではないが、この整数は0を返しますか?
- 20. whileループが終了しないのはなぜですか?
- 21. なぜdo-whileループは機能しないのですか?
- 22. whileループが動作しないのはなぜですか?
- 23. なぜwhileループは終了しないのですか?
- 24. なぜwhileループは終了しないのですか?
- 25. whileループが動作しないのはなぜですか?
- 26. なぜ 'while'はPythonでプログラムを長く実行させるのですか
- 27. なぜ、私のコードはブロック全体ではなく、whileループの1行だけでループしますか?
- 28. 私のコードがipythonノートブックで実行されないのはなぜですか?
- 29. なぜJavaScriptコードが実行されないのですか?
- 30. 私のコードはなぜ0を返し続けますか?
コードをきれいにすることはできますか?あなたは何を達成しようとしていますか? –
質問は何ですか?あなたはどんな結果を得ますか?説明? – Yarimi
ここで無限ループを作成しています –