2011-10-27 29 views
1

我从$_GET['category']得到一个变量。这总是应该是一个整数。所以,当我设置变量使用:php settype()int总是返回1

$category=settype($_GET['category'], "int"); 
// Also tried 
$category=settype($_GET['category'], "integer"); 

然而,这总是返回1.他们是在查询字符串,例如数字:

http://domain.com/example.php?category=57

当我echo $category它总是返回1。 ?category=没有多少数字。

任何帮助,将不胜感激!谢谢!

回答

4

settype修改变量的类型。你正在使用它,好像它会返回一个新的变量。

但是,如果类型更改成功,settype返回true,否则返回false。您看到结果1,因为这是true的字符串表示形式。

您应该使用casting,或intval

$category = (int) $_GET['category']; // or ... 
$category = intval($_GET['category']); 
+0

谢谢!完美的作品! – tvirelli

+1

有时候讨厌SO的随机答案排序有时:( – Phil

0

请阅读文档settype()。 FYI,其回报值为bool

相反,尝试铸造,如

$category = (int) $_GET['category']; 
1

settype成功返回TRUE或FALSE的失败。

它不返回值,它只是返回设置类型是否成功。您的$_GET['category']变量现在是int。如果您想要执行一个返回值但保留该变量的演员表,则语法如下:

$category = (int)$_GET['category'];