[英]What is better approach?
我正在研究PHP框架。 该框架通过创建一个对象$registry
来启动,该对象不断存储如下库:
$registry->set('document',new Document());
$registry->set('url', new Url());
有些图书馆的运作需要$registry
。 因此,此框架将整个$registry
传递给其构造函数。 喜欢:
$upload = new Upload($registry); //registry gets stored in a private var
$registry->set('upload',$upload);
并且有很多这样的库。 他们在内部存储$registry
的副本。
我的问题是,通过将$ registry一次又一次地传递给这些库,是否确实会影响内存,这是一种冗余? 如果可以,我该如何避免呢?
在php中,您可以传递参考: http : //www.php.net/manual/fr/language.references.php,但我什至不确定您是否会遇到内存问题。
最终您所需的变量可以是静态变量吗?
它不会影响内存。 只要您传递一个对象,它就会通过引用(如果使用&操作数)或通过标识符(不带& )传递。 由于您没有创建新的zval容器(就像按值传递某些东西并开始更改它那样),因此内存应该可以。
不过,您应该小心,因为在某些情况下这两种方法的工作方式会有所不同。 看看这个出色的答案 ,看看它们之间的确切区别。 但是,根据经验,如果要传递某些内容并对其进行更改,请始终使用&传递它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.