【待望】PerlユーザのためのPHP入門 (601レス)
【待望】PerlユーザのためのPHP入門 http://medaka.5ch.io/test/read.cgi/php/1046326634/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
68: nobodyさん [] 03/03/01 21:03 ID:b+i+15ud だめだ・・・functionの時点でわからそ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/68
69: 俺様 [] 03/03/01 21:27 ID:UE12tRyA >>66 すまんが俺様は知らんな。 全ての定義済の変数を配列で返すような 関数ならあるが。 <?php $def_arr= get_defined_vars(); //初期設定(_SERVER["SERVER_ADDR"]のようなもの) //を含む全ての定義済みの変数の配列を得る) $a=3; $abc=10; $arr = get_defined_vars(); //初期設定のものに上の2つが追加された。 $new_arr = array_diff($arr,$def_arr); //2つの配列の差を得る。 print_r($new_arr);//配列の内容を出力 ?> #Array ( [a] => 3 [abc] => 10 ) http://medaka.5ch.io/test/read.cgi/php/1046326634/69
70: nobodyさん [sage] 03/03/01 21:29 ID:??? http://medaka.5ch.io/test/read.cgi/php/1046326634/70
71: 俺様 [] 03/03/01 21:32 ID:UE12tRyA >>67 なるほど。Perlでstaticを実現した例ですね。 まあ、PHPの場合はわざわざ自前で作らなくても 最初からstaticという命令が用意されているということです。 http://medaka.5ch.io/test/read.cgi/php/1046326634/71
72: 俺様 [] 03/03/01 21:35 ID:UE12tRyA >>68 Perlをある程度理解していれば わかるようにしたいのだが、 (Perlも未経験という場合はちょっと厳しいです。) どこら辺がわからんだろうか? とりあえずPerlのsubをfunctionに置き換えちゃえばOKだ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/72
73: nobodyさん [sage] 03/03/01 21:35 ID:??? http://medaka.5ch.io/test/read.cgi/php/1046326634/73
74: 生徒B [sage] 03/03/01 21:56 ID:??? >>69 どもども。 ちょっと面倒ですね。 http://medaka.5ch.io/test/read.cgi/php/1046326634/74
75: nobodyさん [sage] 03/03/01 22:00 ID:??? http://medaka.5ch.io/test/read.cgi/php/1046326634/75
76: nobodyさん [sage] 03/03/01 22:12 ID:??? >>66 error_reporting(E_ALL); でどうかな。 http://medaka.5ch.io/test/read.cgi/php/1046326634/76
77: nobodyさん [sage] 03/03/01 22:16 ID:??? http://medaka.5ch.io/test/read.cgi/php/1046326634/77
78: 生徒B [sage] 03/03/01 22:22 ID:??? <?php error_reporting(E_ALL); print $a; ?> #<b>Notice</b>: Undefined variable: a in <b> (filename) # </b> on line <b>3</b><br /> >>76 ありがとう。うまくいきました。 http://medaka.5ch.io/test/read.cgi/php/1046326634/78
79: nobodyさん [sage] 03/03/01 22:23 ID:??? http://medaka.5ch.io/test/read.cgi/php/1046326634/79
80: 俺様 [] 03/03/01 22:30 ID:UE12tRyA >>76 (・∀・)イイ! φ(.. )メモシテオコウ error_reporting(E_ALL); http://medaka.5ch.io/test/read.cgi/php/1046326634/80
81: nobodyさん [sage] 03/03/01 22:35 ID:??? あいだに空を入れる人生。色即是空(w http://medaka.5ch.io/test/read.cgi/php/1046326634/81
82: nobodyさん [sage] 03/03/02 00:05 ID:??? http://medaka.5ch.io/test/read.cgi/php/1046326634/82
83: 俺様 [] 03/03/02 19:03 ID:SRraTB8e よっしゃ!早くも寂れてきたぞ。今日は配列について書いておこう。 まず、Perlの場合配列値を表す変数は先頭が$でなく@になっていた。 しかしPHPではそんな面倒なことはない。どんな場合でも先頭は$でOKだ! 凄い楽そうだろ?(祝 初期化の差はこんな感じだ。 #Perl @a = (20,10,30,3); #PHP $a = array(20,10,30,3); arrayって余計な文字が付いたが細かいことは気にするな。 http://medaka.5ch.io/test/read.cgi/php/1046326634/83
84: 俺様 [] 03/03/02 19:10 ID:SRraTB8e 驚くことにPHPでは $a[] = "a"; $a[] = "b"; $a[] = "c"; $a[0] = "a"; $a[1] = "b"; $a[2] = "c"; この2つが同じ意味となるのだ。 角括弧内の数字を省略した場合、 値は配列に最後の要素として勝手に追加してくれる。 まあ、こういう独自仕様は混乱の元だから俺は上の形式で書いたことは無いがな。 わかった上で使うなら利用場面は結構多いかもしれない。 http://medaka.5ch.io/test/read.cgi/php/1046326634/84
85: nobodyさん [] 03/03/02 19:12 ID:L99j8QKU ↓↓↓↓↓★ピンクエンジェル★↓↓↓↓↓ http://www.pink-angel.jp/betu/linkvp/linkvp.html http://medaka.5ch.io/test/read.cgi/php/1046326634/85
86: 俺様 [] 03/03/02 19:19 ID:SRraTB8e 配列の関数一つ一つ説明するのは面倒だから あとは>>32のサイトや公式のマニュアルでも読んでくれ。 Perlで実現できてたことの代替手段は大体存在してる。 http://medaka.5ch.io/test/read.cgi/php/1046326634/86
87: 俺様 [] 03/03/02 19:26 ID:FrxqKaYz 多次元配列は一つ注意を。 これは前も似たようなこと言ったが $a[0][1] = 41; print "$a[0][1]"; Perlだと期待する結果41が出力されるが、 PHPだとArray[1]という怪しげな結果が出力されてしまう。 後ろの[1]はただの文字列として認識されてしまっているようなのだ。 以下のどちらかにしないといけない。 $a[0][1] = 41; print "{$a[0][1]}"; print "".$a[0][1]; http://medaka.5ch.io/test/read.cgi/php/1046326634/87
88: 俺様 [] 03/03/02 19:28 ID:FrxqKaYz まあ、おかしくなったらまずは変数を{}で括ってみろってことだ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/88
89: nobodyさん [sage] 03/03/02 19:51 ID:??? @a{qw(a b c)} = @b[1..3]; こういうのはどう書く? http://medaka.5ch.io/test/read.cgi/php/1046326634/89
90: nobodyさん [sage] 03/03/02 20:32 ID:??? http://medaka.5ch.io/test/read.cgi/php/1046326634/90
91: 俺様 [] 03/03/02 21:07 ID:FrxqKaYz >>89 うーん、よくわからんな(汗 誰かわかる人募集中だ! まあ、とりあえず根性で全部書いておけ。 $a = array( "a" => $b[1], "b" => $b[2], "c" => $b[3], ) http://medaka.5ch.io/test/read.cgi/php/1046326634/91
92: nobodyさん [sage] 03/03/02 23:06 ID:??? なんで、空投稿するんだよ。見ずらいんだよ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/92
93: nobodyさん [sage] 03/03/02 23:16 ID:??? 日本語すら満足に書けない俺様が講師のクソスレはここですか? 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 見ずらいんだよ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/93
94: nobodyさん [ ] 03/03/02 23:20 ID:??? ねちっこいね。うざいというかきもい。 http://medaka.5ch.io/test/read.cgi/php/1046326634/94
95: nobodyさん [ ] 03/03/02 23:27 ID:??? ∧_∧ ( ´∀`)<きもい。きもい。 ( つ (_○___) http://medaka.5ch.io/test/read.cgi/php/1046326634/95
96: nobodyさん [sage] 03/03/02 23:31 ID:??? 見づらいんだよ。でした。すまん。 俺は「俺様」じゃないです。 http://medaka.5ch.io/test/read.cgi/php/1046326634/96
97: nobodyさん [sage] 03/03/03 04:20 ID:??? 普通に見てる人もいるんで、煽ってるやつらマジでどっかいって。 http://medaka.5ch.io/test/read.cgi/php/1046326634/97
98: nobodyさん [sage] 03/03/03 08:39 ID:??? >>97 普通にウザがってる人もいるんで自分のサイトでやるように説得してください。 http://medaka.5ch.io/test/read.cgi/php/1046326634/98
99: 俺様 [] 03/03/03 10:08 ID:gt/b6+qo 煽りでもレスが付かないよりは大歓迎だ! >>98 需要も少しはあるようだからまあ、多めに見てもいいじゃないか。 WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから 他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ! 2chブラウザ使ってこのスレごとあぼーんだ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/99
100: 俺様 [] 03/03/03 10:33 ID:gt/b6+qo 今日はオブジェクト指向について書いておこう。 PHPもPerlもJavaやC++に代表されるオブジェクト指向言語である。 Perlのオブジェクト指向についてあまり知らないんですが、 Javaに比べるとPHPのオブジェクト指向に関する仕様は ショボイ!!!! 今年中に出る予定のPHP5で大幅に機能がアップするらしいので それに期待しましょう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/100
101: 俺様 [] 03/03/03 10:48 ID:gt/b6+qo まず、誰でも最初に疑問に思うのが オブジェクト指向を用いるメリットは何か? ということだ。 再利用ができる? そんなのオブジェクト指向じゃなくてもしてるじゃないか。 我々はprintという出力命令を何度も利用している。 printの命令が内部でどういう仕組みになっているか調べたことのある人は極少数だろう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/101
102: 俺様 [] 03/03/03 11:12 ID:gt/b6+qo まあ、オブジェクト指向をうまく使えば 再利用『しやすく』はなるだろう。 まず、カプセル化(データ隠蔽)というものがある。 人間というオブジェクトの例で考えてみよう。 人間は体重というデータを持っているが 我々は外見から見ただけでは体重を正確には知れない。 例えば、彼に『体重計に乗れ』ってメッセージを送れば 正確な体重を得ることが出来る。 同様に体重に『直接』アクセスして値を変えることは出来ない。 彼に『〜を食べろ』ってメッセージを送れば その食べた分だけ体重が増加してくれるのである。 つまり、内部で保持しているデータを隠蔽できて、 見たり変えたりするには間接的にアクセスする必要があるということなのだが、 PHPではアクセサ(アクセス制限)の概念が存在しないため このカプセル化があっさり崩壊してしまう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/102
103: 俺様 [] 03/03/03 11:35 ID:gt/b6+qo 再利用のためのもう一つの便利な機能は『継承』だろう。 既存のクラスのフィールド(データ)やメソッド(機能)を引き継いで、 その上で既存の機能を修正したり新たに追加したりできるようになる。 まあ、言い方を変えれば『継ぎはぎ』みたいなものだ。 PHPでは多重継承が存在しない。 つまり、あるクラスに対して1つの親クラスからしか フィールドやメソッドを引き継げないということだ。 同じく多重継承が禁じられているJavaではこのようなことがしたければ interfaceで代替が可能だが、 PHPではその代替案すら用意されていない。 多重継承なんかしなくてもプログラムは作れるという主張も根強いが、 まあ、それを言ったら継承なんかしなくてもプログラムを作れる と言っても同じようなことである。 http://medaka.5ch.io/test/read.cgi/php/1046326634/103
104: 俺様 [] 03/03/03 12:07 ID:gt/b6+qo 1つぐらいサンプルを書いてみよう。 因みに、このように変数に日本語使っても大丈夫だ。 (普段はお奨めしない。) <?php class 人{ //クラス名 var $体重; //フィールド function 人($値){ //コンストラクタ(初期化) $this->体重=$値; //値をフィールドへ代入 } function 体重計に乗る(){ return $this->体重;} //体重を出力するメソッド function 食べる($量){ $this->体重+=$量;} //体重を量だけ加える } $俺様=new 人(60); print $俺様->体重計に乗る(); print ","; $俺様->食べる(0.5); print $俺様->体重計に乗る(); #60,60.5 ?> http://medaka.5ch.io/test/read.cgi/php/1046326634/104
105: 俺様 [] 03/03/03 12:10 ID:gt/b6+qo クラス内で自分自身のフィールドにアクセスするのにも $this->体重 このように$thisとかいうものが必要なのだ。 (Javaの場合は省略可能) これは長いコードを書こうとするとわかるが面倒すぎ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/105
106: 俺様 [] 03/03/03 12:16 ID:gt/b6+qo ここで>>102で指摘した問題が起きる。 <?php class 人{ var $体重; function 人($値){ $this->体重=$値; } function 体重計に乗る(){ return $this->体重;} function 食べる($量){ $this->体重+=$量;} } $俺様=new 人(60); $俺様->体重 = 200; //おいおい、勝手に体重変えられたYO! print $俺様->体重; //体重計使わなくても調べられるのかYO! #200 俺は相撲取りじゃねえYO! ?> てなわけで体重計とかのメソッドを作る意味がなくなってしまうのだ。 (Javaの場合はフィールドの前にprivateを付けるなどすれば このような直接アクセスを防ぐことが出来る。) http://medaka.5ch.io/test/read.cgi/php/1046326634/106
107: 俺様 [] 03/03/03 12:26 ID:gt/b6+qo コンストラクタと言うのは結構便利なんだがな。 <?php class 人 { var $体重; function 人($値){ if($値<0) print "( ´,_ゝ`)プ"; else $this->体重=$値; } } $俺様=new 人(-20); #( ´,_ゝ`)プ ?> このように体重に負の値が入れられるのを 防ぐことが出来る。 まあ、>>106のようにされたら結局は意味が無いのだが・・・ http://medaka.5ch.io/test/read.cgi/php/1046326634/107
108: 俺様 [] 03/03/03 12:30 ID:gt/b6+qo というわけで長くなったが PHPのオブジェクト指向は 現在の仕様では大したことがないということで 積極的に使う必要は無いだろう。 機能をグループ化したい人とか、 『何となくかっこいいことしたい人とか』 (ただし、使い方を誤ると逆にかっこ悪くなる) にはしても損は無い程度だろうか。 いずれにしてもPHP5に期待。 http://medaka.5ch.io/test/read.cgi/php/1046326634/108
109: 俺様 [] 03/03/03 12:33 ID:gt/b6+qo 否定的なことばかり書いてたが 最近の本とか見るとメリットしか書いてなくて オブジェクト指向マンセーになる奴が多すぎる気がするから 敢えて逆行して書いただけで、 メリットをもっと強調するのなら実際は そこまでひどいわけでもないがな。 http://medaka.5ch.io/test/read.cgi/php/1046326634/109
110: nobodyさん [sage] 03/03/03 23:34 ID:??? 98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:??? >>97 普通にウザがってる人もいるんで自分のサイトでやるように説得してください。 99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo 煽りでもレスが付かないよりは大歓迎だ! >>98 需要も少しはあるようだからまあ、多めに見てもいいじゃないか。 WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから 他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ! 2chブラウザ使ってこのスレごとあぼーんだ。 98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:??? >>97 普通にウザがってる人もいるんで自分のサイトでやるように説得してください。 99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo 煽りでもレスが付かないよりは大歓迎だ! >>98 需要も少しはあるようだからまあ、多めに見てもいいじゃないか。 WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから 他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ! 2chブラウザ使ってこのスレごとあぼーんだ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/110
111: nobodyさん [sage] 03/03/03 23:34 ID:??? 98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:??? >>97 普通にウザがってる人もいるんで自分のサイトでやるように説得してください。 99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo 煽りでもレスが付かないよりは大歓迎だ! >>98 需要も少しはあるようだからまあ、多めに見てもいいじゃないか。 WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから 他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ! 2chブラウザ使ってこのスレごとあぼーんだ。 98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:??? >>97 普通にウザがってる人もいるんで自分のサイトでやるように説得してください。 99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo 煽りでもレスが付かないよりは大歓迎だ! >>98 需要も少しはあるようだからまあ、多めに見てもいいじゃないか。 WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから 他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ! 2chブラウザ使ってこのスレごとあぼーんだ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/111
112: nobodyさん [sage] 03/03/03 23:34 ID:??? 98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:??? >>97 普通にウザがってる人もいるんで自分のサイトでやるように説得してください。 99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo 煽りでもレスが付かないよりは大歓迎だ! >>98 需要も少しはあるようだからまあ、多めに見てもいいじゃないか。 WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから 他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ! 2chブラウザ使ってこのスレごとあぼーんだ。 98 名前:nobodyさん 投稿日:2003/03/03(月) 08:39 ID:??? >>97 普通にウザがってる人もいるんで自分のサイトでやるように説得してください。 99 名前:俺様 投稿日:2003/03/03(月) 10:08 ID:gt/b6+qo 煽りでもレスが付かないよりは大歓迎だ! >>98 需要も少しはあるようだからまあ、多めに見てもいいじゃないか。 WebProg板ってスレ保持数に比べて活性化しているスレ数が非常に少ないから 他のスレがdat落ちして困るとかも無いしな。ウザかったら見なければ(・∀・)イイ! 2chブラウザ使ってこのスレごとあぼーんだ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/112
113: nobodyさん [sage] 03/03/04 02:34 ID:??? あんまり資源無駄に使ってるとアク禁食らっちゃうよー http://medaka.5ch.io/test/read.cgi/php/1046326634/113
114: nobodyさん [sage] 03/03/04 05:05 ID:??? このスレすごく良いです。頑張ってください。 http://medaka.5ch.io/test/read.cgi/php/1046326634/114
115: nobodyさん [] 03/03/04 07:56 ID:6TNNfPas >>113 同意。>>1は反省しる。 >>114 自作自演晒しage http://medaka.5ch.io/test/read.cgi/php/1046326634/115
116: 俺様 [] 03/03/04 10:17 ID:SJwb4sM+ オブジェクト指向に関するレスは0か。 まあ、使わなければならない機能でもないから放って置いてくれ。 今日はそろそろ具体的なHTMLドキュメントの作成方法に入っていこう。 >>113 気をつけます。 >>114 (TдT) アリガトウ >>115 俺様は朝5時になんか起きれん。 http://medaka.5ch.io/test/read.cgi/php/1046326634/116
117: 俺様 [] 03/03/04 10:29 ID:SJwb4sM+ 出力方法は何通りかあるので示しておきます。 自分が使いやすい方法を用いればよいだろう。 <?php $title = "タイトル"; print "<html>"; print "<head>"; print "<title>$title</title>"; print "</head>"; print "<body>"; print "俺様のHTMLドキュメント"; print "</body>"; print "</html>"; ?> 前も言ったように、CGI/Perlの場合は print "Content-type: text/html\n\n"; こんなのが必要だったがmod_phpの場合は要らない。 上のスクリプトを書いてブラウザで開いてみれば 見事、俺様のHTMLドキュメントと出力される。 http://medaka.5ch.io/test/read.cgi/php/1046326634/117
118: 俺様 [] 03/03/04 10:50 ID:SJwb4sM+ 資源無駄使いって言われたので 混合させてまとめて記述しちゃうか。 <?php $title = "タイトル"; echo "<html>"; //echoも出力命令の1つ。printと同じようなものと思って良い。 echo("<head>"); //今まで省略してたけど()を付けても構わない。printも同様。 //C言語にあったprintfも使える。%3dなど書式をいろいろ設定できる。 //printやechoと違い、()が必須なので注意。 printf("<title>%s</title>",$title); printf("</head>"); print <<<EOD //ヒアドキュメント。HTML部分が長くてprintとか書くのが面倒なとき便利 <body> 俺様のHTMLドキュメント </body> EOD; //ヒアドキュメント終了 print "</html>"; ?> ヒアドキュメントはPerlでも使っていた人は多いでしょう・ Perlでは↓のように書くが、PHPではセミコロンの位置が変わっているので 間違えないように注意しよう(重要)。 print <<EOD; ... EOD http://medaka.5ch.io/test/read.cgi/php/1046326634/118
119: 俺様 [] 03/03/04 11:00 ID:SJwb4sM+ 因みに、PHPはHTML内に埋め込むことができると言うのを 利点として主張されることも多い。これは以下のように書けるからである。 <?php $title = "タイトル"; ?> <html> <head> <title><?php $title ?></title> </head> <body> 俺様のHTMLドキュメント </body> </html> このように必要な部分だけをPHPスクリプトとして認識させることが出来る。 コメントについても書いちゃおう。 Perlでは#のみだったがPHPではJavaなどで使われている以下の形式も可能である。 // コメント。#と意味は同じ。 /* これもコメント。複数行をコメントか出来るのが特徴。 つまりここもコメントになる。 */ http://medaka.5ch.io/test/read.cgi/php/1046326634/119
120: 俺様 [] 03/03/04 11:11 ID:hLFJ4wUF この利点を利用すれば 簡単なカウンタなら カウント保存用の空ファイルさえアップしておけば ほんの数行であっという間に出来てしまうのだ。 明日はファイル入出力をやろう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/120
121: nobodyさん [sage] 03/03/04 12:54 ID:??? >>116 オブジェクト指向、興味あるよ? http://medaka.5ch.io/test/read.cgi/php/1046326634/121
122: nobodyさん [] 03/03/04 18:41 ID:Nso2bqOx 手っ取りばやくお金もうけしましょう http://www.h4.dion.ne.jp/~sohotop/ 日給2万円も無理じゃない!!! http://medaka.5ch.io/test/read.cgi/php/1046326634/122
123: nobodyさん [sage] 03/03/04 18:50 ID:??? >122 ねずみ講じゃないの? http://medaka.5ch.io/test/read.cgi/php/1046326634/123
124: nobodyさん [] 03/03/04 18:55 ID:QqzA7g89 http://www.agemasukudasai.com/bloom/ http://medaka.5ch.io/test/read.cgi/php/1046326634/124
125: nobodyさん [sage] 03/03/04 19:35 ID:??? 香ばしいです、はい。 http://medaka.5ch.io/test/read.cgi/php/1046326634/125
126: nobodyさん [sage] 03/03/04 21:46 ID:??? OOの無いPHPを使う位なら俺はPerlを使う。 http://medaka.5ch.io/test/read.cgi/php/1046326634/126
127: 生徒B [sage] 03/03/05 01:20 ID:??? >>126 入門なんだから、大目に見てくださいな。 http://medaka.5ch.io/test/read.cgi/php/1046326634/127
128: 俺様 [] 03/03/05 10:25 ID:RSVIcXg3 >>126 まあ、まずはOOを使うメリットをよく考えないと。 モジュールでも作るのか? >>127 OOの入門レベルなら プログラミング全体で見てもやはり入門であることには違いない。 http://medaka.5ch.io/test/read.cgi/php/1046326634/128
129: nobodyさん [sage] 03/03/05 10:41 ID:??? http://medaka.5ch.io/test/read.cgi/php/1046326634/129
130: 俺様 [] 03/03/05 10:50 ID:RSVIcXg3 では、ファイル操作について簡単な説明をしておこう。 ファイルの開き方は、PerlではopenだったがPHPではfopenになる。 読み取りや書き込みなどのモードもPerlとは仕様が変わり C,Java寄りになっているので注意しよう。 PHP: $fp = fopen(filename, mode); //ファイルポインタの位置が返る Perl: open(FILE, filename); //返り値は正常時が1、失敗だと0 オープンモードの選択方法がPerlだと+>みたいのをファイル名に直接つけていたのが PHPだと2つ目の引数として別に記述するようになった。 ファイルハンドラは引数に記述するのではなく、 返り値になったのでそこも注意しよう。 具体的な仕様はマニュアルを参照。 http://www.php.net/manual/ja/function.fopen.php http://medaka.5ch.io/test/read.cgi/php/1046326634/130
131: nobodyさん [sage] 03/03/05 10:52 ID:??? >>130 なぁ、お前学校行ってないの? http://medaka.5ch.io/test/read.cgi/php/1046326634/131
132: 俺様 [] 03/03/05 11:07 ID:RSVIcXg3 では超簡易カウンタを作ってみよう。 仕様としてはファイルcount.txtの1行目にカウンタ数値を書くだけのものだ。 まず予めcount.txtを作成して0を記述しておくこと。 <?php $fp = fopen("count.txt","r"); //count.txtを読み出しモードで開く。 //$fpはファイルポインタであり、rの場合ファイルの先頭の位置が返される。 $count = fgets($fp); //改行かファイルの終端まで読みこんで$countへ代入。 fclose($fp); //いったん閉じる $count++; $fp = fopen("count.txt","w"); //書き込みモード fwrite($fp,$count); //書き込み。 fclose($fp); ?> <html> <body> 貴方は<?php print $count; ?>人目の俺様の弟子じゃ。 </body> </html> http://medaka.5ch.io/test/read.cgi/php/1046326634/132
133: 俺様 [] 03/03/05 11:16 ID:RSVIcXg3 >>131 オマエモナー http://medaka.5ch.io/test/read.cgi/php/1046326634/133
134: 俺様 [] 03/03/05 11:25 ID:RSVIcXg3 では明日はいよいよフォームの処理を行おう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/134
135: 俺様 [] 03/03/05 11:27 ID:RSVIcXg3 ちなみにレッツPHPにファイルを1回しか開かなくていいバージョンが書かれているな。 http://php.s3.to/counter/ 同時アクセスの際の弊害が置きにくくなるからそっちの方がいいだろう。 flockもしておくこと。 http://medaka.5ch.io/test/read.cgi/php/1046326634/135
136: 俺様 [] 03/03/05 11:56 ID:5JBlRiko 因みに、PHPはHTML内に埋め込むことができると言うのを 利点として主張されることも多い。これは以下のように書けるからである。 <?php $title = "タイトル"; ?> <html> <head> <title><?php $title ?></title> </head> <body> 俺様のHTMLドキュメント </body> </html> このように必要な部分だけをPHPスクリプトとして認識させることが出来る。 コメントについても書いちゃおう。 Perlでは#のみだったがPHPではJavaなどで使われている以下の形式も可能である。 // コメント。#と意味は同じ。 /* これもコメント。複数行をコメントか出来るのが特徴。 つまりここもコメントになる。 */ http://medaka.5ch.io/test/read.cgi/php/1046326634/136
137: nobodyさん [] 03/03/05 13:34 ID:E53JqQ+I PHPには「〜?〜:〜」に該当する関数等はありまつか? 下のようなのが沢山あるのでなるべくif文は使いたくないんです。 例1:(Perl) printf "<a href=\"%s\" target=\"%s\">%s</a>\n",&link($a?$b:$c),$d?"_blank":"_top",$d?"新しいウィンドウで開く":($e?"次のページ":"更新"); http://medaka.5ch.io/test/read.cgi/php/1046326634/137
138: nobodyさん [sage] 03/03/05 13:39 ID:??? 条件演算子としては、他に "?:" (または trinary) 演算子があります。 この演算子の動作は、Cまたは他の多く言語と同じです。 (式1) ? (式2) : (式3); この式は、式1 がTRUEの場合に 式2 を、 式1 がFALSEの場合に 式3 を値とします。 と、PHPマニュアルからまんま転載してみる。 http://medaka.5ch.io/test/read.cgi/php/1046326634/138
139: 137 [sage] 03/03/05 13:44 ID:??? >>139 ありがとう。 PHPに乗り換えようかと思います。 http://medaka.5ch.io/test/read.cgi/php/1046326634/139
140: 俺様 [] 03/03/05 14:02 ID:5JBlRiko PHPによるHTTP認証のフックは、Apacheモジュールとして実行した時のみ 有効で、 CGI版では利用できません。Apache モジュールPHPスクリプトにお いて、header() 関数を使用して "Authentication Required" メッセージをクライアントブラウザに送る ことが可能です。 これにより、クライアントブラウザにユーザー名とパスワードを入力する ウイ ンドウがポップアップ表示されます。一度、ユーザーがユーザー名と パスワードを 入力すると、PHP スクリプトを含むその URL は、次回以降、 定義済みの変数 PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_TYPEにそれぞれユーザー名 、 パスワード、認証型を入力してコールされます。 定義済みの変数は、配列 $_SE RVER および $HTTP_SERVER_VARS でアクセス可能です。 "Basic" 認証のみ がサポートさ れています。詳細は、 header()を参照下さい。 http://medaka.5ch.io/test/read.cgi/php/1046326634/140
141: 俺様 [] 03/03/05 19:13 ID:RSVIcXg3 >>140 俺様の騙りがついに キタ━(゚∀゚)━( ゚∀)━( ゚)━( )━(゚ )━(∀゚ )━(゚∀゚)━!!!! http://medaka.5ch.io/test/read.cgi/php/1046326634/141
142: nobodyさん [] 03/03/05 19:16 ID:juhSxd8a http://www.agemasukudasai.com/bloom/ http://medaka.5ch.io/test/read.cgi/php/1046326634/142
143: nobodyさん [sage] 03/03/05 21:23 ID:??? つづきまだー? http://medaka.5ch.io/test/read.cgi/php/1046326634/143
144: nobodyさん [sage] 03/03/05 22:26 ID:??? >>132 ファイルロックとかしなくても大丈夫? http://medaka.5ch.io/test/read.cgi/php/1046326634/144
145: nobodyさん [sage] 03/03/05 22:51 ID:??? $a : $b ? $c = 1; PHPはこれ書ける? http://medaka.5ch.io/test/read.cgi/php/1046326634/145
146: 俺様 [] 03/03/05 23:06 ID:MFbIbSdy >>143 まあ、1日にいくつも書くの疲れるから。 あせらず明日まで待ってクレイ。 >>144 実際に使うなら、ファイルロックしないと( ゚д゚;)マズーだろうな。 シンプルカウンタは>>135のを使ったほうが良い。 >>145 ?と:が逆じゃん? >>138 http://medaka.5ch.io/test/read.cgi/php/1046326634/146
147: nobodyさん [] 03/03/05 23:17 ID:5JBlRiko >>145 三項演算子まともに使えない自作自演俺様晒しage http://medaka.5ch.io/test/read.cgi/php/1046326634/147
148: 俺様 [] 03/03/05 23:47 ID:MFbIbSdy >>147 ん?>>146で言った逆っての間違ってたか? そんなことはないと思うが・・・ http://medaka.5ch.io/test/read.cgi/php/1046326634/148
149: nobodyさん [sage] 03/03/06 00:26 ID:??? >>145-148 てか>>137-138で既出だし。 http://medaka.5ch.io/test/read.cgi/php/1046326634/149
150: nobodyさん [sage] 03/03/06 00:48 ID:??? ふふふ。ひっかかったか。 Perlは三項演算子を左辺値として使える。 って全然利用価値はないけど、知ってるか試しただけ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/150
151: nobodyさん [sage] 03/03/06 00:49 ID:??? あぁ。$a ? $b : $c だな。・・ http://medaka.5ch.io/test/read.cgi/php/1046326634/151
152: nobodyさん [] 03/03/06 01:02 ID:uZwldhHh >>150 ひっかかってた俺様晒しage http://medaka.5ch.io/test/read.cgi/php/1046326634/152
153: nobodyさん [sage] 03/03/06 01:05 ID:??? >>152 ( ´,_ゝ`)プ http://medaka.5ch.io/test/read.cgi/php/1046326634/153
154: 俺様 [] 03/03/06 01:07 ID:ZBXb+hSM >>150 何が引っかかったのかよくわからん。 >>145は逆だからかエラーでてるし。 http://medaka.5ch.io/test/read.cgi/php/1046326634/154
155: 俺様 [] 03/03/06 01:13 ID:ZBXb+hSM >>150 とりあえず $a ? $b : $c = 1; って正しく書いてくれたら面白かったのに。 まあ、またそういうのがあったら引っ掛けてみてクレイ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/155
156: nobodyさん [age] 03/03/06 01:22 ID:??? >>150 気持ちわりぃ〜・・・・(文法が) http://medaka.5ch.io/test/read.cgi/php/1046326634/156
157: 俺様 [] 03/03/06 01:34 ID:ZBXb+hSM わからない点が出てきた(汗 $a ? $b : $c = 1; これは$aがまだ初期化されていないため falseとみなされて$cに1が代入される。 ところが、 $a=true; $a ? $b : $c = 1; このようにしても$bには1が代入されていなかった・・・ ちなみにPerlの場合はちゃんと$bに1が代入されてました。 というわけでどうしてPHPだと代入されないのかを考えて見ましょう。 PerlとPHPの違いですね。 http://medaka.5ch.io/test/read.cgi/php/1046326634/157
158: nobodyさん [sage] 03/03/06 01:36 ID:??? 俺様に、きもいストカー、スレ繁盛。 サラリーマン俳句 http://medaka.5ch.io/test/read.cgi/php/1046326634/158
159: nobodyさん [sage] 03/03/06 01:41 ID:??? define("true",0); http://medaka.5ch.io/test/read.cgi/php/1046326634/159
160: nobodyさん [sage] 03/03/06 01:42 ID:??? さっき書いたもので十分。Perlは三項演算子(の2、3番目のやつ)が左辺値になれる。 なんと関数も左辺値にできる(ver 5.6辺り(?)以降から..) my %hash; sub hoge : lvalue { my $key = shift; return $hash{$key}; } hoge('test') = 1; print $hash{test}; http://medaka.5ch.io/test/read.cgi/php/1046326634/160
161: nobodyさん [sage] 03/03/06 01:43 ID:??? >>157 あほか? $a?$b:($c=1);と解釈するからだろ。つーかそれが健全。 http://medaka.5ch.io/test/read.cgi/php/1046326634/161
162: nobodyさん [sage] 03/03/06 01:52 ID:??? ごめん。またもや失敗。 return を使ってはいけない。とのこと。 sub hoge : lvalue { my $key = shift; $hash{$key}; } http://medaka.5ch.io/test/read.cgi/php/1046326634/162
163: nobodyさん [sage] 03/03/06 03:27 ID:??? C(gcc 2.95.3-6 mingw)はperlと同じ挙動を示した。 こんな書き方があるとは、知らなかった。。 http://medaka.5ch.io/test/read.cgi/php/1046326634/163
164: nobodyさん [sage] 03/03/06 07:56 ID:??? わからない点が出てきた(汗 $a ? $b : $c = 1; これは$aがまだ初期化されていないため falseとみなされて$cに1が代入される。 ところが、 $a=true; $a ? $b : $c = 1; このようにしても$bには1が代入されていなかった・・・ ちなみにPerlの場合はちゃんと$bに1が代入されてました。 というわけでどうしてPHPだと代入されないのかを考えて見ましょう。 PerlとPHPの違いですね。わからない点が出てきた(汗 $a ? $b : $c = 1; これは$aがまだ初期化されていないため falseとみなされて$cに1が代入される。 ところが、 $a=true; $a ? $b : $c = 1; このようにしても$bには1が代入されていなかった・・・ ちなみにPerlの場合はちゃんと$bに1が代入されてました。 というわけでどうしてPHPだと代入されないのかを考えて見ましょう。 PerlとPHPの違いですね。わからない点が出てきた(汗 $a ? $b : $c = 1; これは$aがまだ初期化されていないため http://medaka.5ch.io/test/read.cgi/php/1046326634/164
165: nobodyさん [sage] 03/03/06 07:56 ID:??? わからない点が出てきた(汗 $a ? $b : $c = 1; これは$aがまだ初期化されていないため falseとみなされて$cに1が代入される。 ところが、 $a=true; $a ? $b : $c = 1; このようにしても$bには1が代入されていなかった・・・ ちなみにPerlの場合はちゃんと$bに1が代入されてました。 というわけでどうしてPHPだと代入されないのかを考えて見ましょう。 PerlとPHPの違いですね。わからない点が出てきた(汗 $a ? $b : $c = 1; これは$aがまだ初期化されていないため falseとみなされて$cに1が代入される。 ところが、 $a=true; $a ? $b : $c = 1; このようにしても$bには1が代入されていなかった・・・ ちなみにPerlの場合はちゃんと$bに1が代入されてました。 というわけでどうしてPHPだと代入されないのかを考えて見ましょう。 PerlとPHPの違いですね。 http://medaka.5ch.io/test/read.cgi/php/1046326634/165
166: nobodyさん [sage] 03/03/06 07:59 ID:??? 粘着きもいお(○´∞`○) http://medaka.5ch.io/test/read.cgi/php/1046326634/166
167: 俺様 [] 03/03/06 08:26 ID:0wTJZFjp >>161 http://www.php.net/manual/ja/language.operators.php 演算子の優先順位が =より:?の方が高いから $a?$b:$cの方が$c=1より先に評価されるはずじゃない? でもこうやってみたら$aが真のときに $bに1が代入されてたからやっぱ>>161のいう通りかな。 $a ? $b = 1: $c; しかし、いいかげんな仕様だね。 http://medaka.5ch.io/test/read.cgi/php/1046326634/167
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 434 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s