我需要能够允许类的构造函数通过引用或值传递。
class test{
public function __construct(&$value){
}
}
$reference = "I'll be passed by reference of course";
//Everything good
$test = new Test($reference);
//This of course WONT work
$test = new Test("This would be by value ... on a reference, not cool since I don't refere to any other variable");
有什么想法?谢谢:))
答案 0 :(得分:1)
也许是因为字符串文字可能太大了?
如果您为了优化而执行此操作,则完全没有必要。将函数传递给函数时,不的字符串将被复制!通过引用传递它不会使用更少的内存或更高效。 PHP对内存的处理是您无法控制的,PHP正在为您处理事情,并且不需要您的优化。请参阅copy-on-write和string interning,这是PHP在幕后所做的事情。
PHP引用不是C指针!出于“输出参数”的目的,它们是更高级别的概念,而不是用于优化。您的API显然不是为了使用引用而设计的,所以不要使用它们。