我从$_GET['category']
获取变量。这总是应该是一个整数。所以当我设置我使用的变量时:
$category=settype($_GET['category'], "int");
// Also tried
$category=settype($_GET['category'], "integer");
但是,它总是返回1.它们是查询字符串中的数字,例如:
http://domain.com/example.php?category=57
当我echo $category
时,它总是返回1.无论?category=
背后有什么数字,我就不知道了。
任何帮助将不胜感激!谢谢!
答案 0 :(得分:5)
settype
修改变量的类型。您正在使用它,好像它将返回一个新变量。
但是,如果类型更改成功,则settype
返回true,否则返回false。您将看到结果1
,因为这是字符串表示true。
$category = (int) $_GET['category']; // or ...
$category = intval($_GET['category']);
答案 1 :(得分:1)
settype
成功时返回TRUE,失败时返回FALSE。
它不返回值,只返回设置类型是否成功。您的$_GET['category']
变量现在是int
。如果你想做一个返回值但仍然保持变量不变的强制转换,语法为:
$category = (int)$_GET['category'];
答案 2 :(得分:0)
答案 3 :(得分:0)
请正确阅读documentation。
第一个参数是pass by reference。因此无需在另一个变量中设置返回值。
你只是喜欢,
$category = $_GET['category'];
settype($category, "integer");
感谢。