那么当我们在PHP中使用'new'时会发生什么

时间:2010-07-29 06:14:10

标签: php new-operator

那么当有人在PHP中说'新'时会发生什么呢?

我相信C / Java,当调用new时,会为对象所需的每个实例变量分配内存吗? (如果我错了,请纠正我)

这与PHP相同吗?

3 个答案:

答案 0 :(得分:5)

使用$var = new Class

  • 创建一个新对象(分配和初始化内存);
  • 调用其构造函数(如果有);
  • 将对象放入对象列表并给出唯一ID;
  • 创建了一个新的 zval容器 1 ,此容器除其他外,还存储了该对象的id;
  • 变量$var与此创建的 zval 容器相关联。


1 Definition of what's a zval container.

答案 1 :(得分:1)

最简单的方法是使用memory_get_usage()

自行检查
echo memory_get_usage();
$obj1 = new obj1;
$obj2 = new obj2;
$obj3 = new obj3;
echo memory_get_usage();

PHP的情况也是如此。

答案 2 :(得分:0)

当您在PHP中说new时,PHP会假设您要拨打new ClassPHP Classes Basics