奇妙なPHP構文、解決策

WBOY
リリース: 2016-06-13 12:02:28
オリジナル
1097 人が閲覧しました

奇妙なPHP構文です、解決してください!

文字列が bun string であるかどうかを判断するために使用される PHP メソッドの戻り値が、メソッド strpos では非常に奇妙であることがわかりました。

次のステートメントを見てください:

echo "A1: ".(strpos("csd","c"))."
"; / /0

echo "A2: ".(strpos("csd","c")>=0)."
"; 1

echo "B1: ".(strpos("csd","h",0))."
"; " B2: ".(strpos("csd","h",0)>=0)."
"; //1



//期待値はソース文字列 "abc" に部分文字列 "a" が含まれていることです。ここでの結果は期待値と同じです if(
strpos("abc ","a")>=0){

echo " abc の a"."abc の a}
else
{

echo "a not in abc"."
";
}


// 期待される値は、ソース文字列 "abc" に字幕文字列 "u" が含まれていないことを意味し、結果は期待値と逆になります

if(

strpos("abc","u" )>=0){

echo "abc の u"."
" // u in abc
}
else
{
echo "u not in abc"."
";
}



// 期待される値は、ソース文字列 "a" が部分文字列 "abc" より小さく、ソース文字列 "a" には部分文字列 "abc" が含まれていないことです。部分文字列 "abc"。ここでの結果は期待値と逆です

if(

strpos("a","abc")>=0){

echo "abc in a"."
"; //abc in a}
else
{

echo "abc not in a"."
";
}



//期待値は、ソース文字列 "u" が部分文字列 "abc" より小さく、ソース文字列 "u" に含まれないことです。部分文字列 "abc" の場合、ここでの結果は期待値と逆になります

if(

strpos("u","abc")> =0){

echo "abc in u "."
"; //abc in u }
else
{

echo "abc not in u"."
";
}


//表示結果

A1: 0
A2: 1
B1:
B2: 1
a in abc
u in abc
abc in a
abc in u



定義と使用法

strpos() 関数の戻り値別の文字列内で最初に出現した文字列。

文字列が見つからない場合は false を返します。

構文

strpos(string,find,start)
ログイン後にコピー
参数 描述
string 必需。规定被搜索的字符串。
find 必需。规定要查找的字符。
start 可选。规定开始搜索的位置。


このPHPの判定方法はC# と JAVA は大きく異なります。
PHP では、ソース文字列に部分文字列が含まれていない場合、ソース文字列は部分文字列より小さいため、null 値として返されます。
条件文の後、if(strpos("abc","u")>=0) および if(strpos("u","abc) ")>=0)、値は再び true になります。
この形式は非常に奇妙だと思います。初心者や他の言語 (JAVA、C#) から PHP を学習している人は非常に混乱するかもしれません。 .

ここで、たとえば文字列「abc」に「a」が含まれているかどうかを判断したい場合、どの方法がより良いかを教えてください。 ?


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート