我正在尝试在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) {}