PHP တွင် string သည်အခြား string တစ်ခုတွင် string တစ်ခုတွင်ပထမဆုံးပေါ်လာသည့်နေရာတွင်ရှာဖွေရန် strust function ကိုအသုံးပြုသည်။ သတ်မှတ်ထားသော string တွင်သတ်မှတ်ထားသောအလွှာမရှိပါက string string တွင် string ကို ပြန်ပို့သည်။ သို့သော် မှားယွင်းသော PHP တွင်မှားယွင်းသောတန်ဖိုးကို "မှားယွင်းသောတန်ဖိုး" ဟု ယူဆသောကြောင့်၎င်းသည်ပြန်လည်ထူထောင်ရေးတန်ဖိုးများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါအချို့သောပရိုဂရမ်မာများအကြားရှုပ်ထွေးစေနိုင်သည်။ ဤဆောင်းပါးသည် Stropos မှ မှားယွင်းသော , ထောင်ချောက်များနှင့်ဤအခြေအနေများကိုထိရောက်စွာမည်သို့ကိုင်တွယ်ရမည်ကိုဤဆောင်းပါးသည်စေ့စေ့စပ်စပ်လေ့လာလိမ့်မည်
strpos function ၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
$ haystack : ရှာဖွေရန် string ကို။
$ အပ် - တွေ့ရှိရမည့်အလွှာ။
$ offset : optional ကိုစတင်ခြင်းစတင်ခြင်း, မည်သည့်နေရာတွင်ရှာဖွေရမည်ကိုသတ်မှတ်ခြင်း,
$ haystack တွင် $ အပ်သည်ဒေါ်လာကို haystack တွင်ရှိလျှင် stropos သည် $ အပ် ပထမ ဦး ဆုံးပေါ်လာသည့်နေရာကိုပြန်ပို့လိမ့်မည် (အညွှန်းကိန်းသည် 0 တွင်စတင်သည်) $ အပ်ကို ရှာမတွေ့ပါက မှားယွင်းသော ပြန်လာသည်။
PHP တွင်မှားယွင်းသောအ ယူ မှား ကို "မှားယွင်းသောတန်ဖိုး" ဟု ယူ မှတ် သည်။ အဆိုပါပြ problem နာက strpos မှားယွင်းသော သို့မဟုတ် 0 ပြန်လာစေခြင်းငှါဖြစ်ပါတယ်။ 0 0 သည် PHP တွင်မှားယွင်းသောတန်ဖိုးတစ်ခုဖြစ်ပြီး၎င်းသည်ပရိုဂရမ်မာများအားရှုပ်ထွေးမှုများကိုနှိုင်းယှဉ်လျှင်ရှုပ်ထွေးစေသည်။
ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည်အမှားတစ်ခုဖြစ်ပေါ်စေနိုင်သည်။
<span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Found!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Not found!"</span></span><span>;
}
</span></span>
$ haystack တွင် $ အပ် ၏စတင်သည့်နေရာတွင် 0 သည် 0 (၎င်းသည် string ၏အစဖြစ်သည်) ဟု ဆိုလျှင် 0 0 ပြန်လာပြီ ဆိုပါက 0 င်သည် ။ ။
ဤပြ problem နာကိုရှောင်ရှားရန်တင်းကျပ်သောနှိုင်းယှဉ်ခြင်းအော်ပရေတာ ( === ) ကိုအသုံးပြုသင့်သည်။ ဘာလို့လဲဆိုတော့ === နှိုင်းယှဉ်ချက်သည်တန်ဖိုးသာမကအမျိုးအစားသာမက ဤကိစ္စတွင်ပြန်လာတန်ဖိုးသည် မှားယွင်းသော တန်ဖိုးနှင့်တူညီသည်မှသာအလွှာကိုမတွေ့ရှိပါ။
<span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>) !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Found!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Not found!"</span></span><span>;
}
</span></span>
ဤချဉ်းကပ်မှုသည် 0 မှားယွင်းမှု အတွက်မှားယွင်းသောအခြေအနေကိုရှောင်ရှားသည်။ Code သည် $ အပ်၏ တည်နေရာသည် string ၏အစ (I.E. အညွှန်းကိန်းသည် 0 င် သည်) သို့မဟုတ်အလယ်တွင်ရှိသည်ဖြစ်စေ Code သည်မှန်ကန်စွာကိုင်တွယ်နိုင်သည်။
မှားယွင်းသော ပြန်လာသည့်အခြေအနေများစွာရှိသည် ။
အဆိုပါအလွှာမတည်ရှိပါ ။ အသုံးအများဆုံးဖြစ်ရပ်မှာ ဒေါ်လာအလွှာအလွှာအလွှာသည် Target String $ Haystack တွင်လုံးဝမပေါ်ပါ။
မမှန်ကန်သောအမျိုးအစားထည့်သွင်းမှု - အဝင် parameter type သည်မမှန်ကန်ပါက strotpos သည် မှားယွင်းစွာ ပြန်ပို့နိုင်သည် (ဥပမာ - $ haystack သည် string မဟုတ်ပါ) ။
Offset သည်အလွန်ကြီးမားသည် ။ အကယ် . offset တစ်ခုသတ်မှတ်ထားပါကကျန်ရှိနေသေးသောကြိုးများ၌ ဒေါ်လာအပ် ကိုမတွေ့ရှိနိုင်ပါ ။
နားလည်မှုလွဲမှားခြင်းများ၌ကပ်နေခြင်းကိုရှောင်ရှားရန် Stropos အသုံးပြုရန်အတွက်အကောင်းဆုံးသောအလေ့အကျင့်များဖြစ်သည်။
တင်းကျပ် သော နှိုင်းယှဉ်ချက်ကိုအမြဲတမ်းသုံးပါ ( === ) ကိုသုံးပါ ။ အစောပိုင်းတွင်ဖော်ပြခဲ့သည့်အတိုင်း ,
Check Parameter အမျိုးအစား - $ haystack နှင့် $ အပ်သည် string type နှစ်မျိုးလုံးဖြစ်ကြောင်းသေချာပါစေ။ အကယ်. သင်မသေချာပါကစစ်ဆေးရန် is_string () function ကိုသုံးနိုင်သည်။
Offsets ကိုနားလည်ခြင်း - offsets ကိုအသုံးပြုသောအခါ Offsets ၏အကျိုးသက်ရောက်မှုကိုသင်ရှင်းလင်းပြီးကြီးမားသောတန်ဖိုးများကိုရှောင်ကြဉ်ရမည်။
Stropos function ၏ return value သည် 0 င် သို့မဟုတ် မှားယွင်းသော ကြောင့် 0 င်ရောက်ခြင်းဖြစ်နိုင်သည်။ 0 င် အနေဖြင့် မှားယွင်းသော , တင်းကျပ်သောအမျိုးအစားနှိုင်းယှဉ်ချက် ( ! == fiss ) ကိုရှောင်ရှားနိုင်ရန်အတွက်ပရိုဂရမ်အမှားများကိုရှောင်ရှားနိုင်ရန်အတွက်အလွှာတစ်ခုကိုရှာဖွေတွေ့ရှိခြင်းရှိမရှိဆုံးဖြတ်ရန်အမြဲတမ်းအသုံးပြုရမည်။ Stropos မည်သို့အလုပ်လုပ်သည်ကိုနားလည်ခြင်းနှင့်၎င်း၏ပြန်လာတန်ဖိုးများကိုမှန်ကန်စွာကိုင်တွယ်ဖြေရှင်းနည်းကိုနားလည်နိုင်သည်။