この辺の挙動はパフォーマンスに重大な影響を与えるのに、公式ドキュメント
には記述が見つからん。たぶん書いてないんだろう。
ライブラリの記述はそこそこだが言語仕様の記述は貧弱。こういうのがPHPの一
番直してほしいところだな。
さまざまな言語仕様について熱く語る闘技場
151nobodyさん
2008/12/28(日) 23:10:01ID:???153nobodyさん
2009/01/02(金) 03:08:35ID:??? Amazon.co.jp: はじめてのPHP言語プログラミング入門: 大垣 靖男: 本
http://www.amazon.co.jp/dp/4774122866
どうやらこの本がおすすめらしい。
PHPの言語仕様についてきちんと扱った本だという。
http://www.amazon.co.jp/dp/4774122866
どうやらこの本がおすすめらしい。
PHPの言語仕様についてきちんと扱った本だという。
154nobodyさん
2009/01/02(金) 03:27:16ID:??? 何時の本だよ
言語仕様そんならマニュアルで十分
言語仕様そんならマニュアルで十分
155nobodyさん
2009/01/02(金) 04:21:47ID:??? 大垣氏の名前は覚えておいて損はないよ。
156nobodyさん
2009/01/02(金) 04:29:37ID:??? なんで?
157nobodyさん
2009/01/02(金) 12:56:51ID:??? 印税欲しいから。
158nobodyさん
2009/01/02(金) 16:53:02ID:???,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;;
ヾ;;;ハ ノ .::!lリ;;r゙ 在日の方々はかわいそうな強制連行の被害者
`Z;i 〈.,_..,. ノ;;;;;;;;>
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f そんなふうに考えていた時期が
〜''戈ヽ `二´ r'´:::. `! 俺にもありました
159nobodyさん
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 が正しいかどうか、
問題があるとしたらどこか、考えてみよう。
ないし、書いても長くてウザがられそうなので、クイズにしてみる。
「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 が正しいかどうか、
問題があるとしたらどこか、考えてみよう。
161nobodyさん
2009/01/14(水) 18:06:09ID:??? 大垣センセがこんなとこくるわけないだろw
162nobodyさん
2009/01/14(水) 18:38:30ID:???163nobodyさん
2009/01/14(水) 18:53:26ID:??? つうか、PHPのリファレンスって、要するにインスタンスに別名をつけることで、
仕組み自体はきわめて単純なものなんだよな。他言語で一般に言われるリファ
レンスと似ても似つかないだけで(俺だったら「エイリアス」とか命名したと
思う)。
わかりにくいのは、なんでPHPはこんな、他言語にはない奇妙な仕組みを必要と
するかだ。PHPのリファレンスはいつ、どのようなときに必要なのか。それを理
解するには、PHPの変数と各種インスタンスの挙動を理解する必要がある。
>>159のクイズは、まさにその辺の問題を扱っている。まあちょっと再帰を絡ま
せてしまったんで分かりにくくなってしまったが、再帰は枝葉で、本題にした
いのはそっちだ。
仕組み自体はきわめて単純なものなんだよな。他言語で一般に言われるリファ
レンスと似ても似つかないだけで(俺だったら「エイリアス」とか命名したと
思う)。
わかりにくいのは、なんでPHPはこんな、他言語にはない奇妙な仕組みを必要と
するかだ。PHPのリファレンスはいつ、どのようなときに必要なのか。それを理
解するには、PHPの変数と各種インスタンスの挙動を理解する必要がある。
>>159のクイズは、まさにその辺の問題を扱っている。まあちょっと再帰を絡ま
せてしまったんで分かりにくくなってしまったが、再帰は枝葉で、本題にした
いのはそっちだ。
164nobodyさん
2009/01/14(水) 18:59:55ID:???165nobodyさん
2009/01/14(水) 19:05:36ID:??? 参照でおもしろいのは、引数を参照で受け取る関数で、
それがオブジェクトであることを期待してるのに、NULLだった場合とかに、
関数の中で何もしないのに、var_dumpすると再帰になるようなスクリプトで
別のメモリ領域にズレが生じるとか。
それがオブジェクトであることを期待してるのに、NULLだった場合とかに、
関数の中で何もしないのに、var_dumpすると再帰になるようなスクリプトで
別のメモリ領域にズレが生じるとか。
166nobodyさん
2009/01/14(水) 19:09:11ID:???167nobodyさん
2009/01/14(水) 19:13:09ID:??? 君見苦しいぞ
168nobodyさん
2009/01/14(水) 19:13:20ID:???171nobodyさん
2009/01/14(水) 22:04:23ID:??? 見苦しい人がちょっといたほうが盛り上がるよ
172nobodyさん
2009/01/14(水) 22:17:55ID:??? 盛り下がっちゃったわけだが
174nobodyさん
2009/02/08(日) 20:48:24ID:??? 緊急浮上あげ
175nobodyさん
2009/02/09(月) 02:15:47ID:??? 俺も大垣先生の本は分かりやすいと思った。
PHP6が出たら、改訂版の投入をお願いします!><
図書館で借りて読むけどw
PHP6が出たら、改訂版の投入をお願いします!><
図書館で借りて読むけどw
176nobodyさん
2009/02/09(月) 11:41:42ID:??? 本人乙
177nobodyさん
2009/02/09(月) 14:13:32ID:??? echo と print の厳密な違いを教えてください
178nobodyさん
2009/02/09(月) 14:46:33ID:??? 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);
}
{
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);
}
180nobodyさん
2009/02/09(月) 20:49:46ID:??? そうなるとprintなんて必要ないよな
配布スクリプトなんか覗くとprint使ってるやつがいるので不思議でたまらない
配布スクリプトなんか覗くとprint使ってるやつがいるので不思議でたまらない
181nobodyさん
2009/02/09(月) 21:10:42ID:??? printは成功すると1を返す。
echoは何も返さない。
echoは何も返さない。
182nobodyさん
2009/02/09(月) 23:30:44ID:??? $a=1;
$a ? echo 'aaa' : echo 'bbb'; //error
$a ? print 'aaa' : print 'bbb'; //ok
$a ? echo 'aaa' : echo 'bbb'; //error
$a ? print 'aaa' : print 'bbb'; //ok
183nobodyさん
2009/02/10(火) 05:47:16ID:??? 三項演算子の場合普通式の先頭から書かないか?
184nobodyさん
2009/02/10(火) 06:33:49ID:??? 一例ってことで
185nobodyさん
2009/03/18(水) 11:34:00ID:??? システムハンガリアンって評判悪いじゃん。
たしかにC++みたいに型が違う値を代入しようとしたら
速攻でエラー吐くコンパイラにかけるんなら意味ないかと思うけど、
PHPみたいに元の型が何であろうが無視して新しい型にしてくれちゃう言語は、
ひるがえって『単なる型名を変数名につける』ってのが有効じゃないかと思うんだ。
PHPにおいてはアプリケーションハンガリアンよりシステムハンガリアンのほうがいい気がしてる。
ハンガリアンに限らず、PHPの柔軟すぎる型変換に適した命名規約を考えてくれ。
たしかにC++みたいに型が違う値を代入しようとしたら
速攻でエラー吐くコンパイラにかけるんなら意味ないかと思うけど、
PHPみたいに元の型が何であろうが無視して新しい型にしてくれちゃう言語は、
ひるがえって『単なる型名を変数名につける』ってのが有効じゃないかと思うんだ。
PHPにおいてはアプリケーションハンガリアンよりシステムハンガリアンのほうがいい気がしてる。
ハンガリアンに限らず、PHPの柔軟すぎる型変換に適した命名規約を考えてくれ。
186nobodyさん
2009/03/18(水) 11:34:45ID:??? そもそも、ハンガリアンが嫌われているのは
変数に実際に入れる型がいろいろ変わるからなわけだが。
>>185はバグ回避のために違う型を入れないようにするためと
いっているのだと思うが、間違った型を入れるとか言う以前に
ソフトウェアの性質上、型は変わるものなんだよ。
(変数に最初に想定していた型以外のものを入れることになる)
時代の流れとともに16bit変数は32bit変数に変わるし、
32bitポインタは64bitポインタに変わるし、
オブジェクト指向言語なら、型は継承され新しい型になる。
PHPのような柔軟な言語だからこそ、なおさらハンガリアンは必要ない。
それにハンガリアン(変数の頭に型を入れる)を使うまでもなく
変数名そのものが型をあらわしている。flagならtrue/falseだし、priceなら数値だろう。
変数に実際に入れる型がいろいろ変わるからなわけだが。
>>185はバグ回避のために違う型を入れないようにするためと
いっているのだと思うが、間違った型を入れるとか言う以前に
ソフトウェアの性質上、型は変わるものなんだよ。
(変数に最初に想定していた型以外のものを入れることになる)
時代の流れとともに16bit変数は32bit変数に変わるし、
32bitポインタは64bitポインタに変わるし、
オブジェクト指向言語なら、型は継承され新しい型になる。
PHPのような柔軟な言語だからこそ、なおさらハンガリアンは必要ない。
それにハンガリアン(変数の頭に型を入れる)を使うまでもなく
変数名そのものが型をあらわしている。flagならtrue/falseだし、priceなら数値だろう。
187nobodyさん
2009/03/18(水) 11:35:28ID:???188nobodyさん
2009/03/18(水) 11:35:53ID:??? 常識の範囲内ならどうでもいい。
つまりは、priceがlongからItemPriceに変わるというように
型が変わることがあるってこった。
それは避けられないからハンガリアンはよくない。
つまりは、priceがlongからItemPriceに変わるというように
型が変わることがあるってこった。
それは避けられないからハンガリアンはよくない。
189nobodyさん
2009/03/18(水) 11:36:32ID:??? クラスでゲッターやセッター使ってれば
タイプヒンティングも使えるし、型よりも値の範囲を絞って
例外を飛ばせるから全く問題ない。
一度処理に入ったら長い処理が行われるのではなくて
1回毎のシンプルな処理をセッションやクッキー使ってどうにか
継続させるのがWebアプリだから、ユーザー側のデータは
1回毎に改変が無いか毎回チェックする事になるし、型があってもなくても関係ない。
タイプヒンティングも使えるし、型よりも値の範囲を絞って
例外を飛ばせるから全く問題ない。
一度処理に入ったら長い処理が行われるのではなくて
1回毎のシンプルな処理をセッションやクッキー使ってどうにか
継続させるのがWebアプリだから、ユーザー側のデータは
1回毎に改変が無いか毎回チェックする事になるし、型があってもなくても関係ない。
190nobodyさん
2009/03/18(水) 23:00:28ID:???192◇N.OaZ1nFN2
2009/11/03(火) 12:55:24ID:??? テスト
193nobodyさん
2011/04/22(金) 23:18:04.56ID:itzBhGqM Mono最強伝説
http://ja.wikipedia.org/wiki/XSP_(Web%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC)
http://ja.wikipedia.org/wiki/XSP_(Web%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC)
194nobodyさん
2011/05/13(金) 03:48:00.01ID:??? システムハンガリアン病だわ・・・
HTMLでさえも<span id="spanHoge">とか<input type="text" name="txtHoge">とか
しないと気が済まない_| ̄|○
HTMLでさえも<span id="spanHoge">とか<input type="text" name="txtHoge">とか
しないと気が済まない_| ̄|○
195nobodyさん
2011/05/13(金) 03:59:57.23ID:??? それハンガリアンの意義から逸脱してるよなw
196nobodyさん
2011/05/13(金) 23:21:15.36ID:nIBGPhUJ そう? 意義とは?
197nobodyさん
2011/05/13(金) 23:30:39.71ID:??? 俺が立てたクソスレがまだあるとは思わなかった
ROUND2はなさそうだな
199nobodyさん
2017/12/30(土) 14:35:43.67ID:YhlYw6jg 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
L32JIAVAJE
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
L32JIAVAJE
200nobodyさん
2023/09/22(金) 00:03:53.38ID:??? ウム(メ▼▼)y-i_(・o・ ;)オヤブンドウゾ!!
レスを投稿する
ニュース
- イチロー氏、野球と比べてサッカーが「うらやましい」と語る 「チームのためにという感じが」「野球は個人で成績を出さないとボロカス」 [冬月記者★]
- 【サッカー】ブラジル戦、NHKは地上波なし 本田圭佑はBSで解説… 悲鳴続出「マジかよ」 地上波はフジテレビが生中継、解説は小野伸二 [冬月記者★]
- 【W杯】韓国が大窮地 悪夢のシナリオ止まらず 決勝T進出順位ボーダーの8位に転落 セネガル、イランに抜かれる ★5 [尺アジ★]
- 【自維】鮭おにぎり198円に絶望、コンビニすら遠い存在に…「生き延びられない」物価高で広がる生活苦★6 [ひぃぃ★]
- 【サッカー】W杯の「日本VSブラジル」を他で例えると…Xで問いかけ話題「湘北vs山王」「明徳義塾vs大阪桐蔭」「ドトウvsオペラオー」★2 [o(^・-・^)o★]
- 【サッカー】日本代表、ブラジル戦でアウェーユニホーム着用へ… FIFAが公式発表 爆売れの白デザイン、W杯で初お披露目! [冬月記者★]
- 石破がアメリカに投資した80兆円って返ってくるの? [126644339]
- 経団連「年内には訪中して習主席と面会したい😢レアアースもタングステンももう限界😢」 ★2 [904151406]
- マジな話、リアル5等分の花嫁って気持ち悪いだろうな
- 安倍晋三「らめぇ!お尻がオマンコになっちゃう…!❤」 [279951338]
- 【高市悲報】今国会の全法案が廃案へ。。。飲みィのヤリィのしてきた結果がこれなのか・・・ [252835186]
- お台場、次々閉館してただの廃墟と化してしまう [709039863]