2016-08-02 24 views
0

私はPHPで小切手をしようとしています。私が欲しいのはチェックすることです:PHP - 最初と最後の文字チェック

  • 文字列の最初の文字が「[」
  • 文字列の最後の文字でなければなりません「]」

私が書いたでなければなりませんこのコードは(文は私が実際に何をしたいです、最後の場合)これを確認するために私が望んでいた結果になっていないです:私は最後と思ったこのコードを実行する場合は

$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!"; 
} 

文は最初だけで、しかし、実行するかどうをもしあればtが実行されます。最後のif文のロジックに何が問題なのですか?

+5

あなたの '$ string'には' [''はありませんので '' '' 'が含まれているので、何が書き込まれているのかをエコーし​​ます。 '&&'条件のため、最後には最初の条件を満たすだけです – 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!"; 
} 
0

どのようにシンプルなRegExrチェックについて:

if (preg_match('/^\[.*\]$/', $str) {} 
あなたは、文字列に両方の開始を確実にするために、チェックしたいと []で終わる場合

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

、それぞれ、あなたはこれを必要とします

関連する問題