さまざまな言語仕様について熱く語る闘技場 (200レス)
上下前次1-新
1: 2008/12/08(月)13:15 ID:??? AAS
ROUND 1開始!
74(1): 2008/12/12(金)15:00 ID:??? AAS
ふむ。これじゃない?
外部リンク[php]:jp.php.net
75: 2008/12/12(金)15:15 ID:??? AAS
>>74
違うってよ。俺は__set()がユーザによって定義されてない、素のオブジェクト
の挙動の話をしてんの。>>69のコード読んでよ。これはPHP4でも動くんだよ。
そのリンク先のは、
> $obj->a = 1;
> echo $obj->a . "\n\n";
とかやってるけど、これは全部PHP5以降の __set()と__get()が呼ばれてるだろ。
76(1): 2008/12/12(金)15:27 ID:??? AAS
ほらよ
外部リンク[php]:jp.php.net
77: 2008/12/12(金)15:44 ID:??? AAS
>>76
おお、ありがとう。しかしこれ微妙に違うんじゃね?
これは
1.「未定義の変数をクラスとして扱うとstdClassのインスタンスになる」
ことの説明であって、
2.「任意のインスタンスは、未定義のプロパティをセットできる」
ことの説明じゃないだろ?
もちろん2.を前提として1.が説明されているわけだけど、2.そのものの説明は
どっかにないの?
78: 2008/12/12(金)15:46 ID:??? AAS
屁理屈こねるやつだな
79: 2008/12/12(金)15:52 ID:??? AAS
実際違うんだから仕方がない。
80: 2008/12/12(金)16:25 ID:??? AAS
つうか、このオブジェクトの挙動について、元々知ってた人はどのくらいいる?
いるとしたら、どうやって知った?
これをPHPマニュアル読んで知った人って、一人でもいる?
81: 2008/12/13(土)00:40 ID:??? AAS
おお!勉強になります!もっとやれ!!!…いや、みんなで考えよう(・∀・)
82: 2008/12/13(土)06:10 ID:??? AAS
憶測:
PHPの由来はHTML文書中で簡単に<?php echo $hoge;?>するのが目的だったので、
変数は宣言せず、最初に代入等がおおなわれた時に作成される。
というのが基本仕様で、昔のマニュアルでは見かけたことがある。
これは、現在のマニュアルの「変数」のページにも
PHPでは変数を初期化する必要はないが、という控えめな表現で触れてある。
PHP4で導入されたクラス・オブジェクトでもそのことは変わらず、
メンバー変数の宣言はできるものの、実際のところ、代入によって
変数が育成されるという仕様に変更はなかった。
PHP5になって、public,protected,privateの区別を宣言できるようになったが、
宣言がない、もしくはvarで宣言された場合、PHP4互換となる。
また、PHP5ではクラス用のマジックメソッドが用意された。
これにより、宣言していないメンバー変数に対してオブジェクトからアクセスすると、
メンバー変数が作られるという"仕様"が結果的に発生する。
しかし、制御したい場合は__setでreturn null;なり例外を発生させることで、
宣言していないメンバー変数を使わせないというシステム仕様は実現できるので、
特に不自由することはない。
おもしろいのは、前者の仕様で運用すると、同じクラスから発生したオブジェクトなのに、
なのに、メンバー変数一覧に差異が生じ、get_object_varsでクエリを自動育成などを
やろうとすると、不具合の原因になるが、それは仕様の乱用と考えるのが妥当か。
ながーい、憶測ですんまそん。
83(1): 2008/12/13(土)09:49 ID:??? AAS
>PHPの由来はHTML文書中で簡単に<?php echo $hoge;?>するのが目的だったので、
>変数は宣言せず、最初に代入等がおおなわれた時に作成される。
<?php echo $hoge;?>これのどこが代入なんだ?
84: 2008/12/13(土)11:53 ID:??? AAS
>>83
> <?php echo $hoge;?>これのどこが代入なんだ?
どこに、それが代入だって書いてある?
85: 2008/12/13(土)11:55 ID:??? AAS
なんだこいつ
86: 2008/12/13(土)15:53 ID:??? AAS
変数宣言必須なコンパイラ環境でのリテラシーを持たないやつには、
インタプリタ環境での変数動的割り当てによる収穫について理解するのは難しい。
87(1): 2008/12/14(日)02:27 ID:??? AAS
みんなが使ってみたプログラミング言語は?
じゃあ、俺から。
C→Perl→Java→PHP→SQL→JavaScript→Excel VBA
次は、ActionScriptを勉強したいです。
88(1): 2008/12/14(日)02:36 ID:??? AAS
SQLってプログラミング言語なんだ
89(1): 2008/12/14(日)05:58 ID:??? AAS
>>87
ひどい順番だなw
SQLを使わずにJavaでなにやってんだかw
何一つ習得できなかったとかいう落ちはやめてくれよな
JS使えてればASなんて勉強するまでもない。
90: 2008/12/14(日)11:49 ID:??? AAS
>>88
プログラムは、「データ」とデータの「処理」から成り立っている。
一応SQLでも、処理(条件分岐とか)が書けるんだよね。
cf.日経ソフトウエア 2008年 03月号 p.55
分類/基礎となる計算モデル/事例
手続き型言語/チューリングマシン/C, Java
問い合わせ言語(非手続き型言語)/関係モデル/SQL
関数型言語(非手続き型言語)/ラムダ計算/Lisp, Haskell
論理型言語(非手続き型言語)/一階述語言語/Prolog
こういう知識って、学校の授業で勉強する場合は、計算科学やソフトウェア工学という科目で習うのかな?
91: 2008/12/14(日)11:58 ID:??? AAS
そんなんプログラミングするなら中学生にだって基礎知識だろ
92: 2008/12/14(日)12:11 ID:??? AAS
>>89
Javaはオブジェクト指向の教材として役立ちました!
…しょぼいアプレットが作れます><
ActionScript → Flash、Flex、AIRでWEBアプリを作る
広がる妄想(アイデア)が実現できれば、手段(プログラム言語)は何でもいいんだけど^^
93: 2008/12/14(日)12:18 ID:??? AAS
じゃphpで十分じゃん
94: 2008/12/14(日)12:21 ID:??? AAS
今の高校は「情報」という授業があるらしいね。
外部リンク[htm]:www.mext.go.jp
=このスレのネタみたいに、関数がどうとか熱く語り合っているのかな?
量子コンピューターの設計とか、プログラミング言語をデザインするとか、
スーパーハッカーみたいな中学生ばかりだったら、技術立国日本の未来は明るいwww
95: 2008/12/14(日)12:22 ID:??? AAS
お前あほか。おっさん乙。
96: 2008/12/14(日)12:29 ID:??? AAS
Simple is best.
簡単にできることを複雑にやる必要はない。
=WEBアプリなら、既存の資産を活かしてPerl、PHPで十分
97: 2008/12/14(日)12:40 ID:??? AAS
C、アセンブラのおかげで、ハードの仕組みが理解できるようになった。
Javaのおかげで、オブジェクト指向の話が理解できるようになった。
WEBプログラミングのおかげで、サーバー、ネットワークの話が理解できるようになった。
<今後の課題>
1.デザインパターンのマスター
2.LISPやScheme等の関数型言語をマスター
3.将来実用化されるであろう量子コンピューターについて予習しておく
WEBアプリが自由自在に作れるようになったら、小遣い稼ぎのPHPは卒業だな!(・∀・)
98: 2008/12/14(日)12:54 ID:??? AAS
量子コンピューターってプログラミング言語っていうレイヤーじゃないよな?
おれはPHPのかたわら、Haskellで遊んでみたけど、目から鱗。
PHPコードも洗練されてくるからおもしろい。
99: 2008/12/14(日)13:19 ID:??? AAS
マスターとか言ってる奴がまともな技術と知識を持ってたためしがない
100: 2008/12/14(日)17:24 ID:??? AAS
他人の自分語りほどウザイものはないよね〜
101: 2008/12/14(日)22:02 ID:??? AAS
俺が最初に覚えた言語はHTML。
その中でも、<body>に関しちゃ、ネイティブ?って言われることがある
102: 2008/12/14(日)23:56 ID:??? AAS
C>html>>>越えられない壁>>>php
103: 2008/12/15(月)17:36 ID:??? AAS
このまま糞スレ化→dat落ちさせるのは惜しいな。
PHPの言語仕様について話し合える場所は少ない。
104: 2008/12/15(月)17:42 ID:??? AAS
安心していいよ、このスレは残る
消えるのはお前だけだから
105: 2008/12/16(火)22:48 ID:??? AAS
HTMLは高級言語って話は聞いたことあるけどCSSって言語?
106(1): 2008/12/16(火)22:52 ID:9RkOzYwl(1) AAS
echoとprintは文字を出力することは同じなのに
なんで二つも同じことができるんですか?
107: 2008/12/16(火)22:58 ID:??? AAS
PHPスレのテンプレ
108: 2008/12/16(火)23:02 ID:??? AAS
テンプレの回答は求めてないですよ
109: 2008/12/16(火)23:10 ID:??? AAS
じゃ何を求めてんの?
110: 2008/12/16(火)23:19 ID:??? AAS
力…!!!
111(1): 2008/12/19(金)21:04 ID:??? AAS
CSSも、関数やらロジックを実装するようになってきたからなぁ。
叙事詩的定義もなにか新しいプログラミング言語のように感じる
112: 2008/12/19(金)21:38 ID:??? AAS
>>111
CSSの関数ってのはググったら見つかったけど、
例)CSS//関数
外部リンク:suika.fam.cx
> 叙事詩的定義
ってのはぜんぜん見つからない。"epic(al) definition" でも該当なし。
詳細プリーズ。
113(1): 2008/12/19(金)22:09 ID:??? AAS
形容しただけだろ
日本語能力だいじょうぶか?
114(1): 2008/12/19(金)22:39 ID:??? AAS
で、形容するとどういう意味になるんだい?
115: 2008/12/19(金)22:45 ID:??? AAS
短文煽りは不快なだけで何も生み出さないからやめようぜ。
そのうち Kusakabe (void) みたいになっちまうぞ。
116: 2008/12/19(金)23:04 ID:??? AAS
>>113-114はストレスたまっててここで発散したいんです!
117: 2008/12/19(金)23:06 ID:??? AAS
>>106 に遅レス。
なんで echo と print の二つがあるかというと、まあ以下の文書に解説がある
わけだけど、
FAQTs - Knowledge Base - View Entry - What is the difference between echo and print?
外部リンク:www.faqts.com
どうも読んでてまだるっこしい。
2番目とか、
「echo は文(statement)、printは式(expression)」
こう書いたら、ずっとスッキリすると思うんだが。
そういう専門用語を使いたくないのかもしれないが、statement やexpression
程度の簡単な概念すら避けて説明するのは間違っていると思う。
これは外部リンクだけど、PHPマニュアルは全体的にそんな印象。
118(1): 2008/12/19(金)23:08 ID:??? AAS
作った張本人たちもアバウトってことですね
119: 2008/12/19(金)23:16 ID:??? AAS
>>118
さすがに張本人は分かってなきゃ作れないだろ。
単にユーザへの説明の仕方の問題だと思う。
120(1): 2008/12/20(土)10:04 ID:??? AAS
本家のMLに参加して質問するのが近道ですね
121: 2008/12/20(土)12:44 ID:??? AAS
英語ができたらなあ。自然言語を書くのはは難しい...。
122: 2008/12/20(土)12:46 ID:??? AAS
プログラミングと英語はほとんど同じような気が・・・
123: 2008/12/20(土)12:55 ID:??? AAS
|
|
|
J
124: 2008/12/20(土)12:56 ID:??? AAS
そうかあ?自然言語は理詰めで書けないじゃないか。
文法だけ覚えても engrish.com に載るような英文しか書けない。
125: 2008/12/20(土)13:28 ID:??? AAS
PG言語も文法だけ覚えてもサンプルに載ってるような英文しか書けない。
126: 2008/12/20(土)13:33 ID:??? AAS
if (i = no money) {you are ogottekureru me}else{you are keti}
127: 2008/12/20(土)15:55 ID:??? AAS
まさか英語ができないやつとかいるの?
128: 2008/12/20(土)15:56 ID:??? AAS
お前だけだろ
129: 2008/12/20(土)16:21 ID:??? AAS
俺は英語ができると思ったことはないな。
一応、片言で会話したり、英語のドキュメントも
英文サイトは普通に読めるから不自由はしないけど、
英語で恋愛はできんw
130: 2008/12/20(土)16:27 ID:??? AAS
いや今話してるのは
メーリングリストに投稿するとか
その程度のレベルの話だから。
131: 2008/12/20(土)16:28 ID:??? AAS
お、そうか、>>120からの流れね。数レス前も読まずに書いて寸摩損
132: 2008/12/20(土)16:45 ID:??? AAS
どうやってMLに入会するのかもわからない
普通に申請するだけじゃだめみたいね
133: 2008/12/20(土)16:58 ID:??? AAS
入会の仕方書いてあるでしょ。
「英語」で(藁
134: 2008/12/20(土)18:00 ID:??? AAS
英語がわからないから入会方法がわからないって捉えられないとかゆとりですか?
135: 2008/12/21(日)00:33 ID:??? AAS
OK! well, let's talk in English here.
136: 2008/12/21(日)00:34 ID:??? AAS
このスレを見ている人はこんなスレも見ています。(ver 0.20)
pixiv自前イラスト向上スレ part7 [CG]
【ショタ】3次専ショタスレ 10【女装・美少年】 [Download]
... what are you interested in ? (^^;
137: 2008/12/21(日)05:34 ID:??? AAS
なんで学生時代に英語勉強しなかったの?
138: 2008/12/21(日)05:54 ID:??? AAS
俺はセンターで9割近くは取ったが、いまだに英語ができる気がしない。
All your base are belong to us - Wikipedia
外部リンク:ja.wikipedia.org
これも解説を読まなきゃ分からんかった。
139: 2008/12/21(日)05:58 ID:??? AAS
英語のオンラインゲームできれば
「英語できる」と認定していいと思う
140: 2008/12/22(月)01:06 ID:??? AAS
I try to write the comment on program code from yesterday.
It's cooooool!!! ;-p
141: 2008/12/28(日)21:22 ID:??? AAS
「phpできます!」なんて自信たっぷりに言われた時の恥ずかしさ - ドグマを探しに
外部リンク:d.hatena.ne.jp
> PHPのあれが駄目とかじゃなく、もし神様(何の?)が、今までのは無かった
> ことにしてPHPをどこでも3ヶ所直していいよっていったらどうするかっての
> を聞いてみたいです。
具体的な内容はリンク先を参照。この辺ほんとに直らんものかなあ。
142(1): 2008/12/28(日)21:25 ID:??? AAS
結局関数名と記法の話?
143(2): 2008/12/28(日)21:43 ID:??? AAS
>>142
違うだろ。
144(1): 2008/12/28(日)22:07 ID:??? AAS
別の話。
PHPでの内部変数の扱われ方 - PHP5のオブジェクトコピーでありがちな勘違い - PHPプロ!ニュース
外部リンク:www.phppro.jp
コピーオンライト - Wikipedia
外部リンク:ja.wikipedia.org
arrayはオブジェクトじゃないのでコピーオンライトは行われないかと思ったが、
実行時間を見ると、どうやらちゃんとコピーオンライトしているらしい。
~ $ time php -r '$a=range(0, 100000);'
0.069 secs
~ $ time php -r '$a=range(0, 100000); $b=$a;'
0.068 secs
~ $ time php -r '$a=range(0, 100000); $b=$a; $b[100]=0;'
0.117 secs
145: 2008/12/28(日)22:13 ID:??? AAS
>>143
どうして?
146(1): 2008/12/28(日)22:17 ID:??? AAS
$bの値を書き換えた後、実行時間が2倍近くになってるだろ。
147: 2008/12/28(日)22:35 ID:??? AAS
>>146
>>143
148(1): 2008/12/28(日)22:44 ID:??? AAS
違う?
じゃあどうして $b の一部を書き換えると、実行時間がこんなに延びんの?
149: 2008/12/28(日)22:45 ID:??? AAS
あ、環境書いてなかった。
~ $ php --version
PHP 5.2.6 (cli) (built: Sep 13 2008 11:13:29)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
150: 2008/12/28(日)22:55 ID:??? AAS
つうかググればすぐ言及するページは見つかる。やっぱりcopy on write だ。
Big arrays in PHP
外部リンク:brian.moonspot.net
> If the array is static then you don't really have to assign it by
> reference, since in PHP 5 all (non-object) variables are
> copy-on-write. So as long as you don't change the value then a copy
> isn't made.
php.netにはどこに書いてあるのか分からん。バグレポートばかり引っかかる。
151: 2008/12/28(日)23:10 ID:??? AAS
この辺の挙動はパフォーマンスに重大な影響を与えるのに、公式ドキュメント
には記述が見つからん。たぶん書いてないんだろう。
ライブラリの記述はそこそこだが言語仕様の記述は貧弱。こういうのがPHPの一
番直してほしいところだな。
152: 2008/12/29(月)14:19 ID:??? AAS
>>148
落ち着け。145は別の話だ。
そっちの話は143が説明できないようだが。
153(1): 2009/01/02(金)03:08 ID:??? AAS
Amazon.co.jp: はじめてのPHP言語プログラミング入門: 大垣 靖男: 本
外部リンク:www.amazon.co.jp
どうやらこの本がおすすめらしい。
PHPの言語仕様についてきちんと扱った本だという。
154: 2009/01/02(金)03:27 ID:??? AAS
何時の本だよ
言語仕様そんならマニュアルで十分
155: 2009/01/02(金)04:21 ID:??? AAS
大垣氏の名前は覚えておいて損はないよ。
156: 2009/01/02(金)04:29 ID:??? AAS
なんで?
157: 2009/01/02(金)12:56 ID:??? AAS
印税欲しいから。
158: 2009/01/02(金)16:53 ID:??? AAS
AA省
159(4): 2009/01/11(日)18:25 ID:??? AAS
最近、個人的に面白いと思った言語仕様があるのだが、ここに書いてる時間が
ないし、書いても長くてウザがられそうなので、クイズにしてみる。
「PHP言語仕様・力試しクイズ」
$ php -r '$a=array(); $a["a"]= $a; var_dump($a);'
$ php -r '$a=array(); $a["a"]=&$a; var_dump($a);'
$ php -r '$a=new stdClass; $a->a= $a; var_dump($a);'
$ php -r '$a=new stdClass; $a->a=&$a; var_dump($a);'
(以下は PHP5(以上)でしか動かない)
$ php -r '$a=new stdClass; $a->a= clone $a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]= $a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]=&$a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]= clone $a; var_dump($a);'
Q1
これらのコードが、PHP4とPHP5で、それぞれどのような表示をするか、試して
みよう。自信のある人は試す前に予想してみよう。
Q2
>>144のリンク先の記事 外部リンク:www.phppro.jp が正しいかどうか、
問題があるとしたらどこか、考えてみよう。
160: 2009/01/14(水)17:15 ID:??? AAS
>>153
作者乙
161(1): 2009/01/14(水)18:06 ID:??? AAS
大垣センセがこんなとこくるわけないだろw
162(1): 2009/01/14(水)18:38 ID:??? AAS
>>161
おお、やっと大垣さんの名前を知っている人が来たか。
よかったら>>159の問題を見てってくれ。
誰にもやってもらえなくてさびしい。
163: 2009/01/14(水)18:53 ID:??? AAS
つうか、PHPのリファレンスって、要するにインスタンスに別名をつけることで、
仕組み自体はきわめて単純なものなんだよな。他言語で一般に言われるリファ
レンスと似ても似つかないだけで(俺だったら「エイリアス」とか命名したと
思う)。
わかりにくいのは、なんでPHPはこんな、他言語にはない奇妙な仕組みを必要と
するかだ。PHPのリファレンスはいつ、どのようなときに必要なのか。それを理
解するには、PHPの変数と各種インスタンスの挙動を理解する必要がある。
>>159のクイズは、まさにその辺の問題を扱っている。まあちょっと再帰を絡ま
せてしまったんで分かりにくくなってしまったが、再帰は枝葉で、本題にした
いのはそっちだ。
164(1): 2009/01/14(水)18:59 ID:??? AAS
>>162
その問題、最初に出現したときに解いて、全問正解だったよ。
でもそんなこと書いたって意味ないから書かなかっただけ。
いろんなところにコピペしなくていいよ。
165(1): 2009/01/14(水)19:05 ID:??? AAS
参照でおもしろいのは、引数を参照で受け取る関数で、
それがオブジェクトであることを期待してるのに、NULLだった場合とかに、
関数の中で何もしないのに、var_dumpすると再帰になるようなスクリプトで
別のメモリ領域にズレが生じるとか。
166(1): 2009/01/14(水)19:09 ID:??? AAS
>>164
ちょっと待て。これどこかにコピペされてんの?
俺はここと、くだ質スレ79にしか書き込んでないぞ。
まあそんなことはどうでもいいか。
全問正解とはすごいな。俺自身、Q1の最後から2番目は、自分でも動かしてみな
いと分からんかった。
どうやって勉強した?PHPマニュアルだけでは>>159は分からんと思うが。
参考にさせてほしい。
あとQ2の答えを、手短でいいから書いてみてくれないか?
167(1): 2009/01/14(水)19:13 ID:??? AAS
君見苦しいぞ
168: 2009/01/14(水)19:13 ID:??? AAS
>>165
> 関数の中で何もしないのに、var_dumpすると再帰になるようなスクリプトで
すまんがここの意味が分からん。
なんかコードの実例で示してもらえんか?
169: 2009/01/14(水)19:17 ID:??? AAS
>>167
意味不明。
170: 2009/01/14(水)19:42 ID:??? AAS
>>166
参照代入を行った場合のrefcountが違う
171: 2009/01/14(水)22:04 ID:??? AAS
見苦しい人がちょっといたほうが盛り上がるよ
172: 2009/01/14(水)22:17 ID:??? AAS
盛り下がっちゃったわけだが
173: 2009/01/17(土)07:18 ID:??? AAS
>>159
Q2の答えまだ〜?
174: [あげ] 2009/02/08(日)20:48 ID:??? AAS
緊急浮上あげ
175: 2009/02/09(月)02:15 ID:??? AAS
俺も大垣先生の本は分かりやすいと思った。
PHP6が出たら、改訂版の投入をお願いします!><
図書館で借りて読むけどw
176: 2009/02/09(月)11:41 ID:??? AAS
本人乙
177(1): [age] 2009/02/09(月)14:13 ID:??? AAS
echo と print の厳密な違いを教えてください
178: 2009/02/09(月)14:46 ID:??? AAS
void zend_do_print(znode *result, znode *arg TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->result.op_type = IS_TMP_VAR;
opline->result.u.var = get_temporary_variable(CG(active_op_array));
opline->opcode = ZEND_PRINT;
opline->op1 = *arg;
SET_UNUSED(opline->op2);
*result = opline->result;
}
void zend_do_echo(znode *arg TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_ECHO;
opline->op1 = *arg;
SET_UNUSED(opline->op2);
}
179: 2009/02/09(月)20:41 ID:??? AAS
>>177
echo は、(カンマ)で区切って、連続で引数をぶちこめる。
printはできない。
180: 2009/02/09(月)20:49 ID:??? AAS
そうなるとprintなんて必要ないよな
配布スクリプトなんか覗くとprint使ってるやつがいるので不思議でたまらない
181: 2009/02/09(月)21:10 ID:??? AAS
printは成功すると1を返す。
echoは何も返さない。
182: 2009/02/09(月)23:30 ID:??? AAS
$a=1;
$a ? echo 'aaa' : echo 'bbb'; //error
$a ? print 'aaa' : print 'bbb'; //ok
183: 2009/02/10(火)05:47 ID:??? AAS
三項演算子の場合普通式の先頭から書かないか?
184: 2009/02/10(火)06:33 ID:??? AAS
一例ってことで
185(2): 2009/03/18(水)11:34 ID:??? AAS
システムハンガリアンって評判悪いじゃん。
たしかにC++みたいに型が違う値を代入しようとしたら
速攻でエラー吐くコンパイラにかけるんなら意味ないかと思うけど、
PHPみたいに元の型が何であろうが無視して新しい型にしてくれちゃう言語は、
ひるがえって『単なる型名を変数名につける』ってのが有効じゃないかと思うんだ。
PHPにおいてはアプリケーションハンガリアンよりシステムハンガリアンのほうがいい気がしてる。
ハンガリアンに限らず、PHPの柔軟すぎる型変換に適した命名規約を考えてくれ。
186: 2009/03/18(水)11:34 ID:??? AAS
そもそも、ハンガリアンが嫌われているのは
変数に実際に入れる型がいろいろ変わるからなわけだが。
>>185はバグ回避のために違う型を入れないようにするためと
いっているのだと思うが、間違った型を入れるとか言う以前に
ソフトウェアの性質上、型は変わるものなんだよ。
(変数に最初に想定していた型以外のものを入れることになる)
時代の流れとともに16bit変数は32bit変数に変わるし、
32bitポインタは64bitポインタに変わるし、
オブジェクト指向言語なら、型は継承され新しい型になる。
PHPのような柔軟な言語だからこそ、なおさらハンガリアンは必要ない。
それにハンガリアン(変数の頭に型を入れる)を使うまでもなく
変数名そのものが型をあらわしている。flagならtrue/falseだし、priceなら数値だろう。
187: 2009/03/18(水)11:35 ID:??? AAS
>>185
flagがビットフラグ(整数)だったり
priceが税計算機能つきのItemPriceクラスのオブジェクトだったらどうすんの?
188: 2009/03/18(水)11:35 ID:??? AAS
常識の範囲内ならどうでもいい。
つまりは、priceがlongからItemPriceに変わるというように
型が変わることがあるってこった。
それは避けられないからハンガリアンはよくない。
189: 2009/03/18(水)11:36 ID:??? AAS
クラスでゲッターやセッター使ってれば
タイプヒンティングも使えるし、型よりも値の範囲を絞って
例外を飛ばせるから全く問題ない。
一度処理に入ったら長い処理が行われるのではなくて
1回毎のシンプルな処理をセッションやクッキー使ってどうにか
継続させるのがWebアプリだから、ユーザー側のデータは
1回毎に改変が無いか毎回チェックする事になるし、型があってもなくても関係ない。
190(1): 2009/03/18(水)23:00 ID:??? AAS
終了
以後こちらへ
システムハンガリアンってPHPでは有効じゃね?
2chスレ:php
191: 2009/03/19(木)09:49 ID:??? AAS
>>190
議論はここでおk
無駄なスレは使わなくておk
192: ◇N.OaZ1nFN2 2009/11/03(火)12:55 ID:??? AAS
テスト
193: 2011/04/22(金)23:18 ID:itzBhGqM(1) AAS
Mono最強伝説
外部リンク:ja.wikipedia.org
194: 2011/05/13(金)03:48 ID:??? AAS
システムハンガリアン病だわ・・・
HTMLでさえも<span id="spanHoge">とか<input type="text" name="txtHoge">とか
しないと気が済まない_| ̄|○
195: 2011/05/13(金)03:59 ID:??? AAS
それハンガリアンの意義から逸脱してるよなw
196: 2011/05/13(金)23:21 ID:nIBGPhUJ(1) AAS
そう? 意義とは?
197: 2011/05/13(金)23:30 ID:??? AAS
俺が立てたクソスレがまだあるとは思わなかった
198: 電脳プリオン 忍法帖【Lv=40,xxxPT】(1+0:8) 【18.7m】 2013/01/27(日)14:40 ID:??? AAS
ROUND2はなさそうだな
199: 2017/12/30(土)14:35 ID:YhlYw6jg(1) AAS
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
L32JIAVAJE
200: 2023/09/22(金)00:03 ID:??? AAS
ウム(メ▼▼)y-i_(・o・ ;)オヤブンドウゾ!!
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.371s*