2016-08-02 70 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) {}