if语句-PHP-第一个和最后一个字符检查


if statement - PHP - First and last character check

我正在尝试在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语句会执行,而只有第一个If语句执行。最后一个if语句中的逻辑有什么问题?

您将最后一条语句设置为"AND-&&",并且应该是"OR-||"

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

您的最后一个if语句将检查字符串的第一个字符是否为NOT[,最后一个字符是否也是NOT]。如果从$str中删除最后一个],您将看到COND MET输出。

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

如果您希望检查以确保字符串分别以[]开头和结尾,则需要以下内容:

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

一个简单的RegExr检查如何:

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