在PHP中,(int) $_GET['page']是什么意思?

23
我尝试查找了 (int) 的信息,但只在 PHP 手册中找到了 int() 函数的文档。
有人能够解释一下上述代码的作用,以及它是如何工作的吗?
9个回答

22
您可以在手册的类型转换:类型转换部分找到它。 (int)将值强制转换为 int 类型,是语言结构,因此看起来有些“奇怪”。

22

它将变量的值转换为整数(至少尝试转换)。如果有任何字母等在前面,则会将其转换为0。

<?php

$var = '1a';

echo $var;               // 1a
echo (int) $var;     //1

$var2 = 'a2';
echo $var2;           //a2
echo (int) $var2;     // 0

?>

的翻译是:

?>


4
简单的例子将帮助您理解:

var_dump((int)8);
var_dump((int)"8");
var_dump((int)"6a6");

var_dump((int)"a6");

var_dump((int)8.9);
var_dump((int)"8.9");
var_dump((int)"6.4a6");

结果:

int(8)
int(8)
int(6)

int(0)

int(8)
int(8)
int(6)

3

(int)将一个值转换为整数。

<?php
$test = "1";
echo gettype((int)$test);
?>

$ php test.php
integer

2
在PHP中,(int)将把其后面的值转换为int类型。
例如:
php > var_dump((int) "5");
int(5)

我认为这个语法是从C语言借鉴而来的。


2
你现在看到的是所谓的类型转换 - 想要了解更多信息,请参考类型转换的手册页面。
上述代码将$_GET['page']转换为整数。

1

它将其后面的变量转换为整数。更多信息请参阅文档: http://php.net/manual/en/language.types.type-juggling.php

在PHP中,类型转换的工作方式与C语言类似:所需类型的名称写在要转换的变量之前的括号中。

允许的转换包括:

  • (int),(integer) - 转换为整数
  • (bool),(boolean) - 转换为布尔值
  • (float),(double),(real) - 转换为浮点数
  • (string) - 转换为字符串
  • (array) - 转换为数组 (object) - 转换为对象
  • (unset) - 转换为NULL

1
这种语法 (int) 称为类型转换。基本上它会取变量并尝试强制将其转换为 int 类型。

1

这并不完全正确:(int)是类型转换(请参阅:http://php.net/manual/en/language.types.type-juggling.php#language.types.typecasting),而`int()`根本不存在。我认为你指的是`intval()`,它本身是一个函数,因此执行时间比类型转换长一点,并提供了提供转换基数的能力。在这个答案中讨论了其他差异:https://dev59.com/m3I-5IYBdhLWcg3wVWpi。 - flu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接