在 C++ 中,当您希望函数能够从对象中读取但不能修改它时,您需要传递const
对函数的引用。在 php 中执行此操作的等效方法是什么?
我知道 php5 中的对象默认是通过引用传递的,但为了便于阅读,我想我会继续在变量名之前使用与号,如下所示:
function foo(&$obj)
{
}
在 C++ 中,当您希望函数能够从对象中读取但不能修改它时,您需要传递const
对函数的引用。在 php 中执行此操作的等效方法是什么?
我知道 php5 中的对象默认是通过引用传递的,但为了便于阅读,我想我会继续在变量名之前使用与号,如下所示:
function foo(&$obj)
{
}
如果你想传递一个对象而不是通过引用,你可以clone
事先传递这个对象。
<?php
function changeObject($obj) {
$obj->name = 'Mike';
}
$obj = new StdClass;
$obj->name = 'John';
changeObject(clone $obj);
echo $obj->name; // John
changeObject($obj);
echo $obj->name; // Mike
我知道 php5 中的对象默认是通过引用传递的,但是为了便于阅读,我想我会继续在变量名之前使用与号
那是你的电话,但我发现这只会让它读起来更像 C++。或者,您可以通过在函数定义中使用类型提示来显示正在传入一个对象:
function foo(StdClass $obj)
{
}
一旦明确这$obj
是一个对象,就可以假定它是通过引用传递的。