php settype() int 总是返回 1

发布于 2024-12-12 05:09:55 字数 488 浏览 2 评论 0原文

我从 $_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=后面有一个数字。

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

I am getting a variable from $_GET['category']. This is always supposed to be a integer. So when I set the variable I use:

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

However, this always returns 1. They are numbers in the query string for example:

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

When I echo $category it always returns 1. No mater what ?category= has behind it for a number.

Any help would be appreciated! Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

会傲 2024-12-19 05:09:55

settype 修改变量的类型。您使用它就好像它会返回一个新变量。

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

您应该使用强制转换,或者intval

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

settype modifies the type of the variable. You're using it as if it would return a new variable.

However, settype returns true if the type change was successful, and false otherwise. You're seeing the result 1 since that's the string representation of true.

You should either use casting, or intval:

$category = (int) $_GET['category']; // or ...
$category = intval($_GET['category']);
神爱温柔 2024-12-19 05:09:55

settype 成功时返回 TRUE,失败时返回 FALSE。

它不返回值,只返回设置类型是否成功。您的 $_GET['category'] 变量现在是一个 int。如果您想要执行返回值但保持变量不变的强制转换,语法为:

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

settype returns TRUE on success or FALSE on failure.

It does not return the value, it just returns whether setting the type was successful or not. Your $_GET['category'] variable is now an int. If you want to do a cast which returns the value but leaves the variable untouched, the syntax is:

$category = (int)$_GET['category'];
江城子 2024-12-19 05:09:55

请阅读 settype() 的文档。仅供参考,它的返回值为 bool

相反,尝试铸造,例如

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

Please read the documentation for settype(). FYI, its return value is bool.

Instead, try casting, eg

$category = (int) $_GET['category'];
混浊又暗下来 2024-12-19 05:09:55

请正确阅读文档

第一个参数是按引用传递。所以不需要在另一个变量中设置返回值。

你就是喜欢,

$category = $_GET['category'];
settype($category, "integer");

谢谢。

Please read documentation properly.

The first argument is pass by reference. So no need to set return value in another variable.

You just do like,

$category = $_GET['category'];
settype($category, "integer");

Thanks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文