2015-11-08 32 views
0

我发现?year=2015在我的网站上工作,同样的方式,?year=2015sjkhdkfzgsfkzgsk呢,当这个'年'与数据库中的整数值(MySQL YEAR类型)进行比较时,有点像这样:php - 比较几年不同的数据类型

$year = Input::get('year'); 
$dbyear = Pic::find($id)->value('year'); 
if($year == $dbyear){ 
    //.. 
} 

,因为这似乎返回true:

var_dump(2015 == '2015abcdefg34748fhhdfgxfgfg'); 

这是正常的或者可能是一个错误吗?我如何更好地比较这些值?现在我做:

$year = substr(Input::get('year'),0,4); 
+1

它[这里记录(http://php.net/manual/en/language.types。 string.php#language.types.string.conversion):*“该值由字符串的起始部分给出,如果字符串以有效数字数据开头,则为所使用的值。”*(通过[比较运算符](http://php.net/manual/en/language.operators.comparison.php))。 – Kenney

回答

0

你可以强制参数string数据类型:

$year = strval(Input::get('year'));