PHP类型转换可用性最小化


php type casting usability for minimization

在php 5中有什么不同吗?* between

 1.  $variable = (int) 1111;

 2.  $variable = '1111';
在物理资源方面

内存使用。

如果我们考虑下面的页面说的话:

从上面的结构可以清楚地看出,变量可以是of一种类型中,变量数据由适当的字段表示zval_value联合。

这意味着你的问题的答案是:。根据变量真正在内部表示的形式,所使用的内存量是不同的。

你的问题下面的评论涉及到其他问题,比如可行性等,所以我将避免处理这个问题。

(ASCII)字符串每个字符使用1个字节。int型是固定长度,与它的值无关。对于32位系统上的"1111",两者恰好占用4字节。在64位系统上,int将占用8个字节,而字符串不会改变。

int在64位系统上最多可以存储8字节的9223372036854775807。要在字符串中存储相同的数字,您需要使用19个字符= 19个字节。字符串可以存储任意长的数字,整型只有有限的限制。

这忽略了PHP内部zval表示可能为不同类型添加的任何开销。

但是,除非您需要一次将数百万个数字塞进内存(此时PHP可能不是您想要做的工作的正确工具),否则它几乎没有什么区别。用int表示数值,用string表示文本。除非你需要存储不适合int类型的数字,否则使用string类型。

虽然这有点不精确(这取决于您的系统设置),但您可以尝试如下

<?php
$variable = '1111111111';
echo memory_get_usage();
?>

(你必须重新加载你的页面几次,直到你得到一个稳定的结果)