【发布时间】:2011-12-17 23:58:07
【问题描述】:
我尝试查找 (int),但只能在 PHP 手册中找到函数 int() 的文档。
有人可以向我解释一下上面的代码是做什么的,以及它是如何工作的吗?
【问题讨论】:
我尝试查找 (int),但只能在 PHP 手册中找到函数 int() 的文档。
有人可以向我解释一下上面的代码是做什么的,以及它是如何工作的吗?
【问题讨论】:
您可以在手册的type juggling: type casting 部分找到它。 (int) 将值强制转换为 int 并且是一种语言结构,这就是它看起来“有趣”的原因。
【讨论】:
无论变量的值是什么,它都会转换(至少尝试)为整数。如果有任何字母等,前面将转换为0。
<?php
$var = '1a';
echo $var; // 1a
echo (int) $var; //1
$var2 = 'a2';
echo $var2; //a2
echo (int) $var2; // 0
?>
【讨论】:
(int) 将值转换为整数。
<?php
$test = "1";
echo gettype((int)$test);
?>
$ php test.php
integer
【讨论】:
在 PHP 中,(int) 会将其后面的值转换为 int。
例子:
php > var_dump((int) "5");
int(5)
我相信语法是从 C 中借来的。
【讨论】:
您在此处查看的内容称为类型转换 - 有关详细信息,请参阅type juggling 上的手册页。
上述代码将$_GET['page'] 转换(或转换)为整数。
【讨论】:
简单的例子会让你明白:
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)
【讨论】:
这种语法(int) 称为类型转换。基本上,它需要跟随它的变量并试图强制它成为int
【讨论】:
(int) 与 int() 相同
【讨论】:
(int) 是一个类型转换(参见:php.net/manual/en/…),而 int() 甚至不存在。我认为您指的是intval(),它本身就是一个函数,因此执行时间比类型转换要长一些,并提供了提供转换基础的能力。此答案中还讨论了其他差异:stackoverflow.com/questions/1912599/…。
它将后面的变量转换为整数。来自文档的更多信息: http://php.net/manual/en/language.types.type-juggling.php
PHP 中的类型转换与 C 中的工作方式非常相似: 想要的类型写在变量之前的括号中 被铸造。
允许的演员表是:
- (int), (integer) - 转换为整数
- (bool), (boolean) - 转换为布尔值
- (float), (double), (real) - 转换为浮点数
- (字符串)- 转换为字符串
- (数组)- 转换为数组(对象)- 转换为对象
- (未设置)- 强制转换为 NULL
【讨论】: