人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPのソースコードで、「function &関数名」というソースコードをたまに見かけます。
これはどういう意味なのでしょうか?
(関数へのポインタですか?)

あと、余談なのですが、PHPでは”ポインタ”という表現を用いませんが、どのようにこの概念を表現するのでしょうか?

●質問者: tomoyuki28jp
●カテゴリ:コンピュータ
✍キーワード:PHP ソースコード ポインタ 概念 表現
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● arcana
●27ポイント

http://www.scollabo.com/banban/php/php_10.html

参照渡しのことでしょうか?


ポインタとはちょっと異なるかと思います。

http://www2.ee.knct.ac.jp/el/E3/E305/pointer02.html

※上手く説明出来ないので、サイト引用でご容赦ください。

◎質問者からの返答

ご回答ありがとうございます。

参照渡しのことではありません。

例えば、このサイトにも例がありますし、http://labs.unoh.net/2006/10/php_print_debug.html

zend frameworkのソースを呼んでいると、

名前空間にアクセスする関数のいくつかで、

function &関数名

という記述が利用されています。


2 ● nandedarou
●27ポイント

リファレンス(参照)」を返す関数だと思います。

http://www.php.net/manual/ja/language.references.php

特に、「リファレンスを返す」を見てください。

蛇足ですが、どのような場合にリファレンスを返す関数使うのか、私なりに解釈して見ました。

あるオブジェクトを操作する必要があるが、どのオブジェクトに対してその操作を行うかの選択が複雑な場合、

オブジェクトの選択を関数にまかせて、関数が選択したオブジェクトを操作するというプログラム構造にしようと思ったとき、

関数の返り値をオブジェクトのリファレンスにすると便利だということだと思います。

※ポインタはという概念はPHPにはないようです。必ずしも必要なものではないからでしょう。リファレンスは似ていますが…。

◎質問者からの返答

ご回答どうもありがとうございます。

大変参考になりました。


3 ● ito-yu
●26ポイント

関数の返値を参照渡しとしています。

http://www.php.net/manual/ja/language.references.return.php

リファレンス構文を使わないと、関数の呼び出しごとにオブジェクトのコピーを作成することになります。メモリの無駄です。

◎質問者からの返答

ご回答どうもありがとうございます。

> リファレンス構文を使わないと、

> 関数の呼び出しごとにオブジェクトの

> コピーを作成することになります。

> メモリの無駄です。

リンクは既出のものと同じでしたが、

コメントが参考になりました。

どうもありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ