怪異的php 文法, 求解!

來源:互聯網
上載者:User

標籤:style   java   color   strong   os   width   

發現一個php用來判斷一個字串是否包子串的返回值與方法 strpos相當的怪異.

看下面的語句:

echo "A1: ".(strpos("csd","c"))."<br>";   //0
echo "A2: ".(strpos("csd","c")>=0)."<br>"; //1
echo "B1: ".(strpos("csd","h",0))."<br>"; //
echo "B2: ".(strpos("csd","h",0)>=0)."<br>"; //1


//期望值是源串"abc"包含子串"a", 此處結果與期望值相同
if(strpos("abc","a")>=0)
{
    echo "a in abc"."<br>"; //a in abc
}
else
{
    echo "a not in abc"."<br>";
}


//期望值是源串"abc"並不包含子串"u", 此處結果與期望值相反

if(strpos("abc","u")>=0)
{
    echo "u in abc"."<br>"; //u in abc
}
else
{
    echo "u not in abc"."<br>";
}



//期望值是源串"a"比子串"abc"小,並且源串"a"並不包含子串"abc", 此處結果與期望值相反

if(strpos("a","abc")>=0)
{
    echo "abc in a"."<br>"; //abc in a
}
else
{
    echo "abc not in a"."<br>";
}



//期望值是源串"u"比子串"abc"小,並且源串"u"並不包含子串"abc", 此處結果與期望值相反

if(strpos("u","abc")>=0)
{
    echo "abc in u"."<br>"; //abc in u
}
else
{
    echo "abc not in u"."<br>";
}


//顯示的結果

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裡是把源串不包子串,源串小於子串當做空值返回.
經過條件陳述式,if(strpos("abc","u")>=0) 和 if(strpos("u","abc")>=0), 值又為真了.
我覺得這種形式非常的怪異,初學者和從其它語言(JAVA,C#)轉過來學習php的人應該會感到很困惑..

請教,在這裡,比如我要判斷 字串"abc" 裡包含 "a", 用哪個方法比較好呢?


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.