memo: PHPの参照渡し 作者: わたなべ 2003年8月19日 13:05 PHPは関数の引数に参照渡しができる。関数定義のところで function foo($bar, &$baz){ # barは値渡し # bazは参照渡し } と書けばよい。
perlも同じように参照渡しができるということに、perlを勉強し始めてだいぶたってから分かった。Cなら簡単にわかるのにperlとかだと異様にわかりにくく思えてしまうのはなぜなんだろう。ポインタ型の宣言ができないからなのかなぁ。
そうそう。しかもperlだと&は関数ポインタで、がポインタじゃなかったっけ。(うろおぼえ)そしたらphpは&がポインタかよ。なんかperlとJavaScriptの表記がごっちゃまぜになって、そこにphpが入るともう……
Perlはperl4の頃までは&をつけなきゃ関数呼び出しだと認識してくれなかった。当時としては*が参照もどきだった気がする。ファイルハンドルが特別なんだよなぁ。「’」と「::」がいつのまにか等価になってたり。あとは、perl5のどっかで連想配列をオブジェクトみたいに使うようになって…perl5.6くらいからはよくわからない。変数に記号使いすぎると演算子が困るんだよな。
そうそうそう。最初「’」を使っていて、エディタに「括弧が閉じてない」ってよく怒られたものだよ(懐古)。俺は「::」で統一して欲しいものだ。しかし、まだ「use SOME::WHERE::PM->new();」という使い方と「use SOME::WHERE::PM qw( function );」という使い方がごっちゃになって何がなんだか。お前はライプラリなのかインスタンスなのかどっちなんだと。小一時間問い詰めたい。
自分で書いておいて何か違うな。public な method だと思えばいいのか。見当違いのことを書いたかもしれん。すまん。「perlはObject指向言語、perlはObject指向言語、……」(呪文)—–
perlも同じように参照渡しができるということに、perlを勉強し始めてだいぶたってから分かった。Cなら簡単にわかるのにperlとかだと異様にわかりにくく思えてしまうのはなぜなんだろう。ポインタ型の宣言ができないからなのかなぁ。
$とか%とか@がわかりにくいんだと思う。あれはやばい。PHPも$をつけさせる点は同じ。PHPは名前空間がちょっと恐い。標準ライブラリ(?)が全部べた〜ってなってんのがさ。
そうそう。しかもperlだと&は関数ポインタで、がポインタじゃなかったっけ。(うろおぼえ)そしたらphpは&がポインタかよ。なんかperlとJavaScriptの表記がごっちゃまぜになって、そこにphpが入るともう……
Perlはperl4の頃までは&をつけなきゃ関数呼び出しだと認識してくれなかった。当時としては*が参照もどきだった気がする。ファイルハンドルが特別なんだよなぁ。「’」と「::」がいつのまにか等価になってたり。あとは、perl5のどっかで連想配列をオブジェクトみたいに使うようになって…perl5.6くらいからはよくわからない。変数に記号使いすぎると演算子が困るんだよな。
そうそうそう。最初「’」を使っていて、エディタに「括弧が閉じてない」ってよく怒られたものだよ(懐古)。俺は「::」で統一して欲しいものだ。しかし、まだ「use SOME::WHERE::PM->new();」という使い方と「use SOME::WHERE::PM qw( function );」という使い方がごっちゃになって何がなんだか。お前はライプラリなのかインスタンスなのかどっちなんだと。小一時間問い詰めたい。
自分で書いておいて何か違うな。public な method だと思えばいいのか。見当違いのことを書いたかもしれん。すまん。「perlはObject指向言語、perlはObject指向言語、……」(呪文)—–