0

C ++では、関数がオブジェクトから読み取れるようにしたいが、変更はしたくない場合はconst、関数への参照を渡します。PHPでこれを行う同等の方法は何ですか?

php5のオブジェクトはデフォルトで参照によって渡されることは知っていますが、読みやすくするために、変数名の前に次のようにアンパサンドを使用し続けると思います。

function foo(&$obj)
{

}
4

1 に答える 1

3

オブジェクトを渡したいが参照ではなくしたい場合は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それがオブジェクトであることが明らかになると、それは参照によって渡されていると見なすことができます。

于 2012-07-06T19:00:09.030 に答える