php类型转换的可用性最小化

php类型转换的可用性最小化,php,memory,Php,Memory,在PHP5.*中,两者之间有什么区别吗 1. $variable = (int) 1111; vs 在物理资源方面,如内存使用。 请提供任何意见。尽管这有点不精确(取决于您的系统设置),但您可以尝试一下 <?php $variable = '1111111111'; echo memory_get_usage(); ?> (您必须重新加载页面几次,直到获得稳定的结果)一个(ASCII)字符串每个字符使用1字节。int是一个固定的长度,与它的值无关。对于32位系统上的“11

在PHP5.*中,两者之间有什么区别吗

 1.  $variable = (int) 1111;
vs

在物理资源方面,如内存使用。


请提供任何意见。

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

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

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

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

Ints可以在64位系统上以8字节的形式存储高达9223372036854775807的值。要在字符串中存储相同的数字,您需要使用19个字符=19个字节。字符串可以存储任意长的数字,整数有一个有限的限制

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


然而,除非您需要同时将数以百万计的数字塞进内存(在这一点上,PHP可能是您尝试执行的工作的错误工具),否则它几乎没有任何区别使用整数表示数值,使用字符串表示文本。除非需要存储不适合整数的数字,否则请使用字符串。这应该是最主要的问题。

如果我们考虑到

从上面的结构可以清楚地看出,变量可以是 一种类型,变量数据由中的相应字段表示 兹瓦卢价值联盟

这意味着你的问题的答案是:。根据变量内部实际表示的内容,使用的内存量有所不同


您问题下的注释涉及其他问题,如生存能力等。因此,我将不再讨论这些问题。

在第一个示例中,您可以删除
(int)
,因为它已经是int。一个是字符串,另一个是int。。。所以
$var1!==$VAR2,但<代码> $VAR1==$VAR2< /Calp>(int)'1111 '将字符串类型转换为整数,更快,然后是int(1111)),当然,但我想知道,例如C++中的整数是4字节,字符串中的每个字符都是1字节。在php中是这样还是有另一种内存分配方式?这应该是次要的问题。差别将是如此之小,几乎不值得考虑。更大的问题是:你有数值还是文本?根据这个决定使用合适的类型。这很难回答问题。
<?php
$variable = '1111111111';
echo memory_get_usage();
?>