© 愛知・名古屋・小牧のしゃべれるIT屋さん DGR Works All rights reserved.
近頃の若いヤツラは参照渡しもわかっちゃいない これだからPHP5使いは使えない
って友人が毒吐いてました
でもこれ、おれらが若い頃に
近頃の若いヤツラはポインタ渡しもわかっちゃいない これだからBASIC使いは使えない
って言われてたのと同じような気がするんだな
厳密に言えばポインタ渡しと参照渡しは違うんだろうけど、まあこの場合は感覚としては同じってことでよろしく
このポインタとか参照が理解できない代名詞としておれが子供の頃はBASIC使いがバカにされたもんだ
それをしなかったのは多分パソコンサンデーに出演されていた宮下教授くらいなものか?
その後その代名詞はVBに取って変わられ、HSPなどもその対象にあがっただろうか
とにかく入門用と言われる言語ならなんでもこれネタに叩いておけば通ぶれるというネタである
ちなみにC言語の入門書などはマジでこのポインタの説明だけで1/3を、他構造体の説明で1/3を使うくらい難しい概念のようだ
近年、サーバーサイドプログラムが日の目を浴びてメモリを膨大に消費するのは悪だ!的な風潮に戻りつつある中、参照渡しというのが出てくるが、残念ながらPHPなどではこれに多くのページを割くことはなく、PHP5使いはデフォルトで参照渡しをさせられていることにすら気がついていない現状を友人がボヤいていた
それがそのままこのタイトルなわけだ
じゃあその参照渡しってなんなのさ?ってことになるんだが、そんなにページを割かなくてもものすごくわかりやすいことなんだ
変数ってどこにデータを格納してるかって言えばそれはメモリ上だよな
PHP4までは
$a = 5;
$b = $a;
これが値渡しといって$aと$bという別々の変数に5という値が入るんだ、つまりメモリをその分消費するってこと
でも
$a = 5;
$b = &$a;
こうやると参照渡しになり、なんというのか5という値を持つ$aと$bという二つの呼び名が出来るだけとなるわけだ
簡単な話だろ?
PHP5からはもう標準でそれが参照渡しになるってこと、つまり
$a = 5;
$b = $a;
これで参照渡しとなるわけだ
こうすることで参照渡しがわからないメモリを無駄に費やしやがる未熟者に対応したわけだが、困ったのがPHP4で既に参照渡しで書かれたスクリプトをPHP5で動かした場合なんだな
エラー吐かれて全部参照渡しの記号である&を消せと言ってきやがるw
未熟者のために熟練者が割を食らうなんて!!
って友人が毒吐いてました
まあいいじゃないか、彼らもかつての我々のように体で覚えることになる
わかりにくい例え話とか、わけのわからん専門用語ばかりの説明とか、書いている本人も理解していないであろうぐちゃぐちゃな説明文だとか、英語をうまく翻訳できていない文章を読みながら悩んで苦しんで覚えていくであろう
だから友人よ、横綱のラーメンごちそうさまでしたとだけ君には言っておこう
コメント
この記事へのトラックバックはありません。
この記事へのコメントはありません。