以下代码:
<?php
$str = "19.09.02";
if(substr($str, -3, 2) == ".0")
{
// Doing something
}
$str2 = "19.09.2002";
if(substr($str2, -3, 2) == ".0")
{
// Doing something
}
?>
为什么第二个语句适用(没有regexp)?我怎么解决,它只是应用第一个表达式?
谢谢
答案 0 :(得分:6)
我认为您应该使用identity(===)运算符来解决此问题:)
=== vs ==的主要区别之一是===根本不投,这是一个非常严格的比较。
答案 1 :(得分:0)
只需写===而不是==
您还可以使用以下内容:
if(preg_match("!([0-9]{2}).([0-9]{2}).([0-9]{2,4})!", $str, $found)){
list($day, $month, $year) = array_shift($found);
if(strlen($year)==4){
//must be 4
}else{
//must be 2...
}
}
答案 2 :(得分:0)
尝试===运算符。问题是在这两种情况下返回的值都是0,并且它与另一个值进行比较。