我现在正在构建一个php框架...再来一次。
我有一个名为config的类。
它很简单,它的名字是这样的:
$conf = config::get('general');$conf现在是一个充满配置好处的数组。
类框架如下所示:
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兆字节?
发布于 2009-12-19 05:17:43
如果您不修改它们,则只有一个。
但是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发布于 2009-12-19 05:14:06
我的理解是,在你写它的时候,你会得到10个数组,每个1MB。
如果您使用&传入一个按引用的变量并返回一个指针,或者在函数名前面使用&返回一个按引用的返回值,您就可以做您想做的事情。
https://stackoverflow.com/questions/1930702
复制相似问题