2016-08-02 67 views
0

我正在嘗試使用PHP進行檢查。我要的是檢查:PHP - 首字母和尾字符檢查

  • 在字符串中的第一個字符必須是「[」
  • 字符串中的最後一個字符必須是一個「]」

我寫這個代碼(最後的if語句是我真正想要的)來檢查這一點,但我沒有得到我想要的結果:

$str = "dfgdfg]"; 

if($str[0] != '[') { 
    echo "FIRST NOT EQUAL TO"; 
} 

if(substr($str,-1) != ']') { 
    echo "SECOND NOT EQUAL TO"; 
} 


if(($str[0] != '[') && (substr($str,-1) != ']')) { 
    echo "COND MET!"; 
} 

如果我運行此代碼,我認爲最後的if語句會然而執行,只有第一如果政治家t執行。最後一條if語句中的邏輯有什麼問題?

+5

根據你的'$ string'沒有'['所以它確實回顯了什麼是寫入.second ID錯誤,因爲它包含']'所以沒有回聲那裏。如果只滿足第一個條件,最後由於&&'條件 – Saurabh

回答

1

您將最後一條語句設置爲「AND - & &」,應該是「OR - ||」

if(($str[0] != '[') || (substr($str,-1) != ']')) { 
echo "COND MET!"; 
} 
0

你最終if語句檢查你的字符串的第一個字符是不是一個[,最後一個字符也不是一個]。如果您從$str中刪除最後一個],則會看到COND MET輸出。

if(($str[0] != '[') && (substr($str,-1) != ']')) { 
    echo "COND MET!"; 
} 

如果你想檢查,以確保該字符串都開始和以[]結束,分別需要這樣的:

if(($str[0] == '[') && (substr($str,-1) == ']')) { 
    echo "COND MET!"; 
} 
0

怎麼樣簡單RegExr檢查:

if (preg_match('/^\[.*\]$/', $str) {}