さまざまな言語仕様について熱く語る闘技場
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/08(月) 13:15:56ID:???0071nobodyさん
2008/12/12(金) 14:39:12ID:???くだ質にはちょっと前に同じ質問がされてたんだよ。しかし回答はなかった。
たぶんPHPマニュアルには載ってないんだろう。
この辺の挙動を知っておかないとオーバーロードは理解できないのに、PHPマニュ
アルには載ってないんだとしたら、詳しい人たちはどうやってこれを知って理
解したのか聞きたいんだよ。
ちなみにPHPマニュアルのページ下のコメント欄みたいなところには載ってた。
しかしあそこはホントに玉石混交で、あそこにだけ載ってても意味ないだろ。
0073nobodyさん
2008/12/12(金) 14:53:17ID:???今見てみたら、前スレの470だった。
http://pc11.2ch.net/test/read.cgi/php/1226517332/470
いろいろやり取りしてたけど、結局PHPマニュアルの当該URLは出てない。
0074nobodyさん
2008/12/12(金) 15:00:03ID:???http://jp.php.net/manual/ja/language.oop5.overloading.php
0075nobodyさん
2008/12/12(金) 15:15:12ID:???違うってよ。俺は__set()がユーザによって定義されてない、素のオブジェクト
の挙動の話をしてんの。>>69のコード読んでよ。これはPHP4でも動くんだよ。
そのリンク先のは、
> $obj->a = 1;
> echo $obj->a . "\n\n";
とかやってるけど、これは全部PHP5以降の __set()と__get()が呼ばれてるだろ。
0076nobodyさん
2008/12/12(金) 15:27:30ID:???http://jp.php.net/manual/ja/language.variables.php
0077nobodyさん
2008/12/12(金) 15:44:48ID:???おお、ありがとう。しかしこれ微妙に違うんじゃね?
これは
1.「未定義の変数をクラスとして扱うとstdClassのインスタンスになる」
ことの説明であって、
2.「任意のインスタンスは、未定義のプロパティをセットできる」
ことの説明じゃないだろ?
もちろん2.を前提として1.が説明されているわけだけど、2.そのものの説明は
どっかにないの?
0078nobodyさん
2008/12/12(金) 15:46:13ID:???0079nobodyさん
2008/12/12(金) 15:52:28ID:???0080nobodyさん
2008/12/12(金) 16:25:40ID:???いるとしたら、どうやって知った?
これをPHPマニュアル読んで知った人って、一人でもいる?
0081nobodyさん
2008/12/13(土) 00:40:30ID:???0082nobodyさん
2008/12/13(土) 06:10:54ID:???PHPの由来はHTML文書中で簡単に<?php echo $hoge;?>するのが目的だったので、
変数は宣言せず、最初に代入等がおおなわれた時に作成される。
というのが基本仕様で、昔のマニュアルでは見かけたことがある。
これは、現在のマニュアルの「変数」のページにも
PHPでは変数を初期化する必要はないが、という控えめな表現で触れてある。
PHP4で導入されたクラス・オブジェクトでもそのことは変わらず、
メンバー変数の宣言はできるものの、実際のところ、代入によって
変数が育成されるという仕様に変更はなかった。
PHP5になって、public,protected,privateの区別を宣言できるようになったが、
宣言がない、もしくはvarで宣言された場合、PHP4互換となる。
また、PHP5ではクラス用のマジックメソッドが用意された。
これにより、宣言していないメンバー変数に対してオブジェクトからアクセスすると、
メンバー変数が作られるという"仕様"が結果的に発生する。
しかし、制御したい場合は__setでreturn null;なり例外を発生させることで、
宣言していないメンバー変数を使わせないというシステム仕様は実現できるので、
特に不自由することはない。
おもしろいのは、前者の仕様で運用すると、同じクラスから発生したオブジェクトなのに、
なのに、メンバー変数一覧に差異が生じ、get_object_varsでクエリを自動育成などを
やろうとすると、不具合の原因になるが、それは仕様の乱用と考えるのが妥当か。
ながーい、憶測ですんまそん。
0083nobodyさん
2008/12/13(土) 09:49:00ID:???>変数は宣言せず、最初に代入等がおおなわれた時に作成される。
<?php echo $hoge;?>これのどこが代入なんだ?
0085nobodyさん
2008/12/13(土) 11:55:05ID:???0086nobodyさん
2008/12/13(土) 15:53:42ID:???インタプリタ環境での変数動的割り当てによる収穫について理解するのは難しい。
0087nobodyさん
2008/12/14(日) 02:27:01ID:???じゃあ、俺から。
C→Perl→Java→PHP→SQL→JavaScript→Excel VBA
次は、ActionScriptを勉強したいです。
0088nobodyさん
2008/12/14(日) 02:36:26ID:???0089nobodyさん
2008/12/14(日) 05:58:30ID:???ひどい順番だなw
SQLを使わずにJavaでなにやってんだかw
何一つ習得できなかったとかいう落ちはやめてくれよな
JS使えてればASなんて勉強するまでもない。
0090nobodyさん
2008/12/14(日) 11:49:11ID:???プログラムは、「データ」とデータの「処理」から成り立っている。
一応SQLでも、処理(条件分岐とか)が書けるんだよね。
cf.日経ソフトウエア 2008年 03月号 p.55
分類/基礎となる計算モデル/事例
手続き型言語/チューリングマシン/C, Java
問い合わせ言語(非手続き型言語)/関係モデル/SQL
関数型言語(非手続き型言語)/ラムダ計算/Lisp, Haskell
論理型言語(非手続き型言語)/一階述語言語/Prolog
こういう知識って、学校の授業で勉強する場合は、計算科学やソフトウェア工学という科目で習うのかな?
0091nobodyさん
2008/12/14(日) 11:58:38ID:???0092nobodyさん
2008/12/14(日) 12:11:59ID:???Javaはオブジェクト指向の教材として役立ちました!
…しょぼいアプレットが作れます><
ActionScript → Flash、Flex、AIRでWEBアプリを作る
広がる妄想(アイデア)が実現できれば、手段(プログラム言語)は何でもいいんだけど^^
0093nobodyさん
2008/12/14(日) 12:18:50ID:???0094nobodyさん
2008/12/14(日) 12:21:13ID:???http://www.mext.go.jp/a_menu/shotou/zyouhou/main18_a2.htm
=このスレのネタみたいに、関数がどうとか熱く語り合っているのかな?
量子コンピューターの設計とか、プログラミング言語をデザインするとか、
スーパーハッカーみたいな中学生ばかりだったら、技術立国日本の未来は明るいwww
0095nobodyさん
2008/12/14(日) 12:22:27ID:???0096nobodyさん
2008/12/14(日) 12:29:48ID:???簡単にできることを複雑にやる必要はない。
=WEBアプリなら、既存の資産を活かしてPerl、PHPで十分
0097nobodyさん
2008/12/14(日) 12:40:36ID:???Javaのおかげで、オブジェクト指向の話が理解できるようになった。
WEBプログラミングのおかげで、サーバー、ネットワークの話が理解できるようになった。
<今後の課題>
1.デザインパターンのマスター
2.LISPやScheme等の関数型言語をマスター
3.将来実用化されるであろう量子コンピューターについて予習しておく
WEBアプリが自由自在に作れるようになったら、小遣い稼ぎのPHPは卒業だな!(・∀・)
0098nobodyさん
2008/12/14(日) 12:54:56ID:???おれはPHPのかたわら、Haskellで遊んでみたけど、目から鱗。
PHPコードも洗練されてくるからおもしろい。
0099nobodyさん
2008/12/14(日) 13:19:12ID:???0100nobodyさん
2008/12/14(日) 17:24:38ID:???0101nobodyさん
2008/12/14(日) 22:02:13ID:???その中でも、<body>に関しちゃ、ネイティブ?って言われることがある
0102nobodyさん
2008/12/14(日) 23:56:30ID:???0103nobodyさん
2008/12/15(月) 17:36:09ID:???PHPの言語仕様について話し合える場所は少ない。
0104nobodyさん
2008/12/15(月) 17:42:21ID:???消えるのはお前だけだから
0105nobodyさん
2008/12/16(火) 22:48:52ID:???0106nobodyさん
2008/12/16(火) 22:52:43ID:9RkOzYwlなんで二つも同じことができるんですか?
0107nobodyさん
2008/12/16(火) 22:58:39ID:???0108nobodyさん
2008/12/16(火) 23:02:16ID:???0109nobodyさん
2008/12/16(火) 23:10:00ID:???0110nobodyさん
2008/12/16(火) 23:19:35ID:???0111nobodyさん
2008/12/19(金) 21:04:10ID:???叙事詩的定義もなにか新しいプログラミング言語のように感じる
0112nobodyさん
2008/12/19(金) 21:38:10ID:???CSSの関数ってのはググったら見つかったけど、
例)CSS//関数
http://suika.fam.cx/~wakaba/wiki/sw/n/CSS++%E9%96%A2%E6%95%B0
> 叙事詩的定義
ってのはぜんぜん見つからない。"epic(al) definition" でも該当なし。
詳細プリーズ。
0113nobodyさん
2008/12/19(金) 22:09:17ID:???日本語能力だいじょうぶか?
0114nobodyさん
2008/12/19(金) 22:39:27ID:???0115nobodyさん
2008/12/19(金) 22:45:24ID:???そのうち Kusakabe (void) みたいになっちまうぞ。
0117nobodyさん
2008/12/19(金) 23:06:25ID:???なんで echo と print の二つがあるかというと、まあ以下の文書に解説がある
わけだけど、
FAQTs - Knowledge Base - View Entry - What is the difference between echo and print?
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
どうも読んでてまだるっこしい。
2番目とか、
「echo は文(statement)、printは式(expression)」
こう書いたら、ずっとスッキリすると思うんだが。
そういう専門用語を使いたくないのかもしれないが、statement やexpression
程度の簡単な概念すら避けて説明するのは間違っていると思う。
これは外部リンクだけど、PHPマニュアルは全体的にそんな印象。
0118nobodyさん
2008/12/19(金) 23:08:40ID:???0120nobodyさん
2008/12/20(土) 10:04:15ID:???0121nobodyさん
2008/12/20(土) 12:44:45ID:???0122nobodyさん
2008/12/20(土) 12:46:50ID:???0123nobodyさん
2008/12/20(土) 12:55:36ID:???|
|
J
0124nobodyさん
2008/12/20(土) 12:56:40ID:???文法だけ覚えても engrish.com に載るような英文しか書けない。
0125nobodyさん
2008/12/20(土) 13:28:24ID:???0126nobodyさん
2008/12/20(土) 13:33:18ID:???0127nobodyさん
2008/12/20(土) 15:55:32ID:???0128nobodyさん
2008/12/20(土) 15:56:26ID:???0129nobodyさん
2008/12/20(土) 16:21:45ID:???一応、片言で会話したり、英語のドキュメントも
英文サイトは普通に読めるから不自由はしないけど、
英語で恋愛はできんw
0130nobodyさん
2008/12/20(土) 16:27:31ID:???メーリングリストに投稿するとか
その程度のレベルの話だから。
0132nobodyさん
2008/12/20(土) 16:45:53ID:???普通に申請するだけじゃだめみたいね
0133nobodyさん
2008/12/20(土) 16:58:17ID:???「英語」で(藁
0134nobodyさん
2008/12/20(土) 18:00:46ID:???0135nobodyさん
2008/12/21(日) 00:33:12ID:???0136nobodyさん
2008/12/21(日) 00:34:49ID:???pixiv自前イラスト向上スレ part7 [CG]
【ショタ】3次専ショタスレ 10【女装・美少年】 [Download]
... what are you interested in ? (^^;
0137nobodyさん
2008/12/21(日) 05:34:29ID:???0138nobodyさん
2008/12/21(日) 05:54:32ID:???All your base are belong to us - Wikipedia
http://ja.wikipedia.org/wiki/All_your_base_are_belong_to_us
これも解説を読まなきゃ分からんかった。
0139nobodyさん
2008/12/21(日) 05:58:34ID:???「英語できる」と認定していいと思う
0140nobodyさん
2008/12/22(月) 01:06:32ID:???It's cooooool!!! ;-p
0141nobodyさん
2008/12/28(日) 21:22:18ID:???http://d.hatena.ne.jp/crenlif/20081114/1226660315
> PHPのあれが駄目とかじゃなく、もし神様(何の?)が、今までのは無かった
> ことにしてPHPをどこでも3ヶ所直していいよっていったらどうするかっての
> を聞いてみたいです。
具体的な内容はリンク先を参照。この辺ほんとに直らんものかなあ。
0142nobodyさん
2008/12/28(日) 21:25:58ID:???0144nobodyさん
2008/12/28(日) 22:07:40ID:???PHPでの内部変数の扱われ方 - PHP5のオブジェクトコピーでありがちな勘違い - PHPプロ!ニュース
http://www.phppro.jp/news/304
コピーオンライト - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%94%E3%83%BC%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%88
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
0146nobodyさん
2008/12/28(日) 22:17:57ID:???0148nobodyさん
2008/12/28(日) 22:44:54ID:???じゃあどうして $b の一部を書き換えると、実行時間がこんなに延びんの?
0149nobodyさん
2008/12/28(日) 22:45:55ID:???~ $ 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
0150nobodyさん
2008/12/28(日) 22:55:23ID:???Big arrays in PHP
http://brian.moonspot.net/2007/02/28/big-arrays-in-php/
> 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にはどこに書いてあるのか分からん。バグレポートばかり引っかかる。
0151nobodyさん
2008/12/28(日) 23:10:01ID:???には記述が見つからん。たぶん書いてないんだろう。
ライブラリの記述はそこそこだが言語仕様の記述は貧弱。こういうのがPHPの一
番直してほしいところだな。
0153nobodyさん
2009/01/02(金) 03:08:35ID:???http://www.amazon.co.jp/dp/4774122866
どうやらこの本がおすすめらしい。
PHPの言語仕様についてきちんと扱った本だという。
0154nobodyさん
2009/01/02(金) 03:27:16ID:???言語仕様そんならマニュアルで十分
0155nobodyさん
2009/01/02(金) 04:21:47ID:???0156nobodyさん
2009/01/02(金) 04:29:37ID:???0157nobodyさん
2009/01/02(金) 12:56:51ID:???0158nobodyさん
2009/01/02(金) 16:53:02ID:???,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;;
ヾ;;;ハ ノ .::!lリ;;r゙ 在日の方々はかわいそうな強制連行の被害者
`Z;i 〈.,_..,. ノ;;;;;;;;>
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f そんなふうに考えていた時期が
〜''戈ヽ `二´ r'´:::. `! 俺にもありました
0159nobodyさん
2009/01/11(日) 18:25:25ID:???ないし、書いても長くてウザがられそうなので、クイズにしてみる。
「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のリンク先の記事 http://www.phppro.jp/news/304 が正しいかどうか、
問題があるとしたらどこか、考えてみよう。
0161nobodyさん
2009/01/14(水) 18:06:09ID:???0162nobodyさん
2009/01/14(水) 18:38:30ID:???おお、やっと大垣さんの名前を知っている人が来たか。
よかったら>>159の問題を見てってくれ。
誰にもやってもらえなくてさびしい。
0163nobodyさん
2009/01/14(水) 18:53:26ID:???仕組み自体はきわめて単純なものなんだよな。他言語で一般に言われるリファ
レンスと似ても似つかないだけで(俺だったら「エイリアス」とか命名したと
思う)。
わかりにくいのは、なんでPHPはこんな、他言語にはない奇妙な仕組みを必要と
するかだ。PHPのリファレンスはいつ、どのようなときに必要なのか。それを理
解するには、PHPの変数と各種インスタンスの挙動を理解する必要がある。
>>159のクイズは、まさにその辺の問題を扱っている。まあちょっと再帰を絡ま
せてしまったんで分かりにくくなってしまったが、再帰は枝葉で、本題にした
いのはそっちだ。
0164nobodyさん
2009/01/14(水) 18:59:55ID:???その問題、最初に出現したときに解いて、全問正解だったよ。
でもそんなこと書いたって意味ないから書かなかっただけ。
いろんなところにコピペしなくていいよ。
0165nobodyさん
2009/01/14(水) 19:05:36ID:???それがオブジェクトであることを期待してるのに、NULLだった場合とかに、
関数の中で何もしないのに、var_dumpすると再帰になるようなスクリプトで
別のメモリ領域にズレが生じるとか。
0166nobodyさん
2009/01/14(水) 19:09:11ID:???ちょっと待て。これどこかにコピペされてんの?
俺はここと、くだ質スレ79にしか書き込んでないぞ。
まあそんなことはどうでもいいか。
全問正解とはすごいな。俺自身、Q1の最後から2番目は、自分でも動かしてみな
いと分からんかった。
どうやって勉強した?PHPマニュアルだけでは>>159は分からんと思うが。
参考にさせてほしい。
あとQ2の答えを、手短でいいから書いてみてくれないか?
0167nobodyさん
2009/01/14(水) 19:13:09ID:???0168nobodyさん
2009/01/14(水) 19:13:20ID:???> 関数の中で何もしないのに、var_dumpすると再帰になるようなスクリプトで
すまんがここの意味が分からん。
なんかコードの実例で示してもらえんか?
■ このスレッドは過去ログ倉庫に格納されています