[PHP-users 19792]Re: 参照渡しについて

ISIGE, Akira xia @ silvia.com
2004年 1月 9日 (金) 00:56:20 JST


いしげ です.

On 2004/01/09 0:40:51 JST,
farita @ d9.dion.ne.jp wrote:

> $dbを参照渡しで渡したい場合、次のどちらにするのが良いのでしょうか。
> その1.最初に&を付ける
> 	db_query(&$db);
> その2.関数の方に&を付ける
> 	function db_query(&$db){
(引用を切り貼りしました)


「その1」の方は「call time pass by reference」と呼ばれ,
引数参照渡しとして書かれていない関数に強制的に参照渡しをする方式ですが,
これは現在の PHP(4.3 から?)では php.ini の設定で
allow_call_time_pass_reference = on としないと Warning が出る仕様に
なっていると思います.

マニュアルでは,
> http://www.php.net/manual/ja/configuration.directives.php#allow-call-time-pass-reference
に書いてあります.

また,この機能は将来的に削除されるというアナウンスが 4.2 の頃にありました.

よって,PHP の推奨は「その2」の方式となると思います.


--
ISIGE, Akira



PHP-users メーリングリストの案内