我目前正在构建一个php框架......
我有一个名为config的课程。
非常简单,就像这样:
$conf = config::get('general');
$ conf现在是一个充满配置好吃的数组。
类sceleton就像这样:
final class config {
private static $configs = array();
public static function get($name) {
return self::$configs[$name];
}
}
假设$ configs数组已经填充并且有一个“常规”键。
这个“常规”键包含一个正好为1兆字节的数组。
让我说我打电话
config::get('general');
10次进入不同的变量。之后没有编辑任何变量...这是否意味着我有10个变量,每个变量包含1兆字节或10个变量指向1兆字节?
答案 0 :(得分:4)
只有一个,如果你不修改它们。
但是php不是你可以依赖任何特定行为的语言; - )
刚试过:
<?php
printf("%10d\n",memory_get_usage());
$a = array_fill(0,30000,'oh');
printf("%10d\n",memory_get_usage());
$b = $a;
printf("%10d\n",memory_get_usage());
$b[] = '';
printf("%10d\n",memory_get_usage());
输出:
325524
2256916
2256980
4188316
答案 1 :(得分:-1)
我的理解是,正如你所写的那样,每1MB会得到10个数组。
如果你是我们&amp;要么传入一个引用变量并返回一个指针,要么使用&amp;在函数名称前面返回一个按引用返回值,你可以做你想做的事。