【问题标题】:What is the size of a bool in PHP?PHP中bool的大小是多少?
【发布时间】:2011-05-12 00:23:15
【问题描述】:

PHP 中 bool 的大小是多少?

对于一个int,很容易确定

echo PHP_INT_SIZE;

我得到了 4 个所以 8 个字节或 32 位。布尔类型呢?谢谢。

【问题讨论】:

  • 我认为应该是一个字节?
  • 这是我希望 sizeof 在 PHP 中做与在 C 和 C++ 中相同的事情的时候。
  • @alex 为什么一个字节可以用一个字节?
  • 很好奇为什么这很重要(除了好奇)。除非你是 Facebook(在这种情况下,编译成 C++ 会改变一些事情),否则我根本看不出在 PHP 中 bool 的内存大小很重要。
  • @Phil 众所周知,现代计算机无法在 RAM 中以每位分辨率运行。一切都以字节为单位。这是物理 CPU 架构的限制。当然,这在物理存储中是不同的,但即便如此,您也需要一个复杂的算法来将事物编码/解码到一个比特级别的分辨率,因为数据是按字节从物理存储拉到 RAM 中的。这将使其计算成本高昂且不值得这样做。曾经用汇编语言编写过代码吗?这样做可以学到很多东西。

标签: php size boolean


【解决方案1】:

bool的大小可以通过查看php源码目录Zend/zend_types.h找到:

typedef unsigned char zend_bool;

unsigned char 的大小为 1 个字节。

【讨论】:

  • 这与 PHP 布尔值占用多少内存无关。这个zend_types.hsn-p 只是定义了一些 C 编译器类型抽象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多