【待望】PerlユーザのためのPHP入門 (601レス)
【待望】PerlユーザのためのPHP入門 http://medaka.5ch.io/test/read.cgi/php/1046326634/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: 俺様 [] 03/02/27 15:17 ID:tJsRCtRD 見事Perl→PHPへの脱皮に成功した俺様が 両者の違いを中心に講義してやる。 今までPerlマンセーだったやつはこれを機にPHPに変更しよう也。 質問もガンガン書いてくれ。 このPerlの文はPHPだとどう書くの?とか。 http://medaka.5ch.io/test/read.cgi/php/1046326634/1
2: nobodyさん [sage] 03/02/27 15:19 ID:??? このスレ結構ありがたいかも。 >>1 ありが? http://medaka.5ch.io/test/read.cgi/php/1046326634/2
3: 俺様 [] 03/02/27 15:19 ID:tJsRCtRD まず、両者には似てる部分も非常に多いというのは特徴だ。 例えば変数の宣言、初期化をしてみよう。 $foo = 0; 頭に$をつけるところも、型を特に指定する必要がないことも、 文末は;になることもみんな一緒だ。 ほら、簡単に移行できそうに思えてきただろ? http://medaka.5ch.io/test/read.cgi/php/1046326634/3
4: 俺様 [] 03/02/27 15:31 ID:tJsRCtRD とりあえずHello, world!を出力してみるぞ。 <? print "Hello, world!\n"; ?> printの意味はperlと一緒だ。 まあ、printよりecho使う人が多いがそんなに違いはない。 perlユーザならわかりやすい方が(・∀・)イイ!だろう。 プログラムの開始と終了は<?と?>で囲むんだ。 これはPHP特有だから早く覚えよう。 <?じゃなくて<?phpで囲んでもOK。将来XMLとの連携を考えるなら 後者で書く癖をつけたほうが良いとは言われている。 http://medaka.5ch.io/test/read.cgi/php/1046326634/4
5: nobodyさん [] 03/02/27 15:37 ID:8ZVFA0UH ↓↓↓↓↓★ココだ★↓↓↓↓↓ http://www.pink-angel.jp/betu/index.html http://medaka.5ch.io/test/read.cgi/php/1046326634/5
6: nobodyさん [___] 03/02/27 15:39 ID:??? PHPでrequireするファイルは必ず<?php ?>で囲まなきゃダメ? http://medaka.5ch.io/test/read.cgi/php/1046326634/6
7: 俺様 [] 03/02/27 15:50 ID:tJsRCtRD とりあえずCGIじゃなくてmod_phpを使っていこう。 例えばCGI/Perlの場合、 #!/perl/bin/perl print "Content-type: text/html\n\n"; print "Hello, world!\n"; 簡単なテストスクリプトを書くときも2行目あたりのウザイのを 書く必要があったがmod_phpならそんな必要はない。 とにかく<?と?>で囲めばOKだ。 というわけで課題として、各自ローカルサーバにPHPをインストールしておこう。 PerlユーザならApacheはインストールしてあると思うのでそれを前提とすると、 http://www.php.net/downloads.php 上記サイトにある Windows Binaries PHP 4.3.1 zip package [5,853Kb] を落とすのじゃ。下のPHP 4.3.1 installerの方が楽そうに見えるが こっちはCGI/PHPとしてしか使えないから駄目。間違えるなよ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/7
8: 俺様 [] 03/02/27 15:55 ID:tJsRCtRD >>6 どういう用途で用いるのか知らんが PHPスクリプトをrequire()するなら当然 そっちも<? ?>は必要だぞ。 まあ、聞くより自分で確かめたほうが早いだろう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/8
9: 俺様 [] 03/02/27 15:59 ID:tJsRCtRD PHPのインストールについては 詳しく解説しているところを見たほうが早いか。 始めたばかりの頃俺が参考にした所だ。 http://www.php-j.com/tutorial/install/win.php では各自ローカルでPHPを動かせるようにしておきましょう。 その瞬間からPerlとはおさらばだ! http://medaka.5ch.io/test/read.cgi/php/1046326634/9
10: nobodyさん [sage] 03/02/27 16:05 ID:??? 俺様、がんがれよ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/10
11: nobodyさん [] 03/02/27 17:01 ID:+18aFIzU win用をインスコしたいのですが ここ以外にバイナリって無いんですか? http://www.php.net/downloads.php http://medaka.5ch.io/test/read.cgi/php/1046326634/11
12: 俺様 [] 03/02/27 17:15 ID:tJsRCtRD >>11 そこのじゃ嫌なのか? そこからで全然問題ないと思うが。 http://medaka.5ch.io/test/read.cgi/php/1046326634/12
13: nobodyさん [sage] 03/02/27 17:57 ID:??? おお,このスレはありがたい.がんがってください. http://medaka.5ch.io/test/read.cgi/php/1046326634/13
14: nobodyさん [] 03/02/27 18:00 ID:oT8eTv8K 期待age http://medaka.5ch.io/test/read.cgi/php/1046326634/14
15: 俺様 [] 03/02/27 20:27 ID:tJsRCtRD CGI/Perlの場合は 能や予、表などの漢字を使うときに文字化けしないように \能、\予、\表みたいな面倒な書き方をする必要があっただろう。 PHPでは大半の人がEUCの日本語コードで記述していて そのような必要はない。 と、言うわけでEUCを読み書き・保存できるエディタを用意しておきましょう。 例えば、Windows標準のメモ帳では無理です。 まあ、ベクターとかでEUCって検索すればすぐに見つかる。 http://channel.goo.ne.jp/download/search/search.php3?MT=euc&CD=1&SW=1&OS=3&category=1&search_num=10 シェアウェアのものでよいならば秀丸やEmEditorがお奨め。 http://medaka.5ch.io/test/read.cgi/php/1046326634/15
16: nobodyさん [sage] 03/02/27 21:11 ID:??? 質問なんですけど、 関数の引数にハッシュを使う方法ってありますか? function func($key,$value){ return "$key => $value"; } $result = func("key"=>"value"); みたいにやりたいのですが Parse error: parse error, unexpected T_DOUBLE_ARROW というエラーがでました。 function func($key=>$value){ return "$key => $value"; } でも無理でした。 http://medaka.5ch.io/test/read.cgi/php/1046326634/16
17: 俺様 [] 03/02/27 21:36 ID:tJsRCtRD >>16 PHP固有の質問はこっちへ書き込もうぜ。 【PHP】質問スレッド Part7 http://pc2.2ch.net/test/read.cgi/php/1044478561/l50 http://medaka.5ch.io/test/read.cgi/php/1046326634/17
18: nobodyさん [sage] 03/02/28 04:10 ID:??? (PerlCode) $name="john"; $say=sub{return "My name is $_[0].";}; print &{$say}($name); はPHPで書くとどうなりますか? http://medaka.5ch.io/test/read.cgi/php/1046326634/18
19: nobodyさん [sage] 03/02/28 06:25 ID:??? >>18 俺のPerl自慢。 つづく http://medaka.5ch.io/test/read.cgi/php/1046326634/19
20: nobodyさん [sage] 03/02/28 08:36 ID:??? >>18 <?php $name = "jhon"; function say($name) {return("My name is $name");} echo say($name); ?> http://medaka.5ch.io/test/read.cgi/php/1046326634/20
21: nobodyさん [] 03/02/28 09:16 ID:TC5rJBdj そんなもんをXHTMLに埋め込んだら、見苦しくて死ぬぞ。 ブラウザでパースもできんようになるし。 MVCにしろや。 http://medaka.5ch.io/test/read.cgi/php/1046326634/21
22: 俺様 [sage] 03/02/28 10:31 ID:??? >>20 お答えサンクス。 と、いうわけでもうインストールはばっちしだと思うので 今日はユーザー定義関数についてから話そう。 超独自仕様のPerとの大きな違いの1つだ。 まあ、はっきり言っちゃえば >>18みたいな書き方はPerlではごく普通だが Perl知らない人から見れば何なのかさっぱりってほど特殊だ。 それに比べてPHPの>>20は他の言語 (例えばJavaとか)しか知らない人が見ても何となく理解できるだろう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/22
23: 18 [sage] 03/02/28 10:35 ID:??? >>20 レスどうもです。 無名サブルーチンみたいなのが使いたいなと思っていたのですが、 create_function関数というのがあるみたいですね。 http://www.php.net/manual/ja/function.create-function.php <?php $name="john"; $say=create_function('$name','return "My name is $name.";'); print $say($name); ?> http://medaka.5ch.io/test/read.cgi/php/1046326634/23
24: 俺様 [sage] 03/02/28 10:51 ID:??? Perlでは関数でなくサブルーチンと呼ばれていたな。 sub foo { print "$_[0] "; return $_[0]+100; } $b= &foo(100) print $b;; #100 200 ------------------- function foo($a) { print "$a "; return $a+100; } $b= foo(100); print $b; #100 200 PHPの場合は明示的に引数を記述しておく必要がある。 可変引数は配列を渡せば良いだろう。Perlも実際は@_という配列を渡しているわけだし。 まあ、こうやって見ると両方大した違いは無く見えるが 変数のスコープについて根本的な違いがあるので注意しよう。 それについては後述。 http://medaka.5ch.io/test/read.cgi/php/1046326634/24
25: 俺様 [] 03/02/28 11:03 ID:0fBPA0cl いちいち引数を書くとは面倒になったと言う人もいるだろうが、 おかげでデフォルト引数を簡単に実現できる。 <?php function foo2($a ="俺様") { print "$a は凄い<br>"; } foo2("お前"); foo2(); ?> /* お前 は凄い 俺様 は凄い */ 引数を指定しなかったら勝手に俺様が凄くなってくれるのだ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/25
26: nobodyさん [sage] 03/02/28 11:04 ID:??? 講座スレ作ろうとする奴って大体理論が崩壊してるよな・・・。 http://medaka.5ch.io/test/read.cgi/php/1046326634/26
27: nobodyさん [sage] 03/02/28 11:04 ID:??? Perlでは関数でなくサブルーチンと呼ばれていたな。 sub foo { print "$_[0] "; return $_[0]+100; } $b= &foo(100) print $b;; #100 200 ------------------- function foo($a) { print "$a "; return $a+100; } $b= foo(100); print $b; #100 200 PHPの場合は明示的に引数を記述しておく必要がある。 可変引数は配列を渡せば良いだろう。Perlも実際は@_という配列を渡しているわけだし。 まあ、こうやって見ると両方大した違いは無く見えるが 変数のスコープについて根本的な違いがあるので注意しよう。 それについては後述。 http://medaka.5ch.io/test/read.cgi/php/1046326634/27
28: 俺様 [] 03/02/28 11:08 ID:0fBPA0cl これかいてる間に重要なこと思い出した。 #Perl code $a=26; print "$aゲット"; #26ゲット ------------- #PHP code $a=26; print "$aゲット"; #(何も表示されない) ---------------------- 両者にはこのような違いが起きてしまう。 下はどうすればよいのか各自考えてみましょう。 出かけるので解答は夜で。 http://medaka.5ch.io/test/read.cgi/php/1046326634/28
29: 俺様 [] 03/02/28 11:09 ID:0fBPA0cl 26ゲットできなかったヽ(`Д´)ノ http://medaka.5ch.io/test/read.cgi/php/1046326634/29
30: 俺様 [] 03/02/28 11:10 ID:0fBPA0cl >>26 俺様はPHP歴浅いので 崩壊どころか理論自体形成されていない。 だからこのスレタイは入門だ。 間違いはがんがん指摘してクレイ! http://medaka.5ch.io/test/read.cgi/php/1046326634/30
31: nobodyさん [] 03/02/28 11:13 ID:njt3nQcM >>30 俺はPHPすら分からない。 だから、がんがん解説してクレイ! http://medaka.5ch.io/test/read.cgi/php/1046326634/31
32: nobodyさん [sage] 03/02/28 11:19 ID:??? 結構見やすいPerl/PHPの構文比較のページ見つけました。 Perl/Php Translation http://www.cs.wcupa.edu/~rkline/perl2php/ 既出だったらゴメン。 http://medaka.5ch.io/test/read.cgi/php/1046326634/32
33: 俺様 [] 03/02/28 11:21 ID:0fBPA0cl >>32 それは便利だな。 では今後はそこに載ってないやつを指摘していくことにしよう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/33
34: nobodyさん [sage] 03/02/28 11:25 ID:??? >>18 <?php $name = "jhon"; function say($name) {return("My name is $name");} echo say($name); ?> http://medaka.5ch.io/test/read.cgi/php/1046326634/34
35: nobodyさん [sage] 03/02/28 11:26 ID:??? Perlでは関数でなくサブルーチンと呼ばれていたな。 sub foo { print "$_[0] "; return $_[0]+100; } $b= &foo(100) print $b;; #100 200 ------------------- function foo($a) { print "$a "; return $a+100; } $b= foo(100); print $b; #100 200 PHPの場合は明示的に引数を記述しておく必要がある。 可変引数は配列を渡せば良いだろう。Perlも実際は@_という配列を渡しているわけだし。 まあ、こうやって見ると両方大した違いは無く見えるが 変数のスコープについて根本的な違いがあるので注意しよう。 それについては後述。 Perlでは関数でなくサブルーチンと呼ばれていたな。 sub foo { print "$_[0] "; http://medaka.5ch.io/test/read.cgi/php/1046326634/35
36: nobodyさん [sage] 03/02/28 11:32 ID:??? >>28 変数名の後ろは全角文字でもダメみたいですね。 (半角の「.」はOKだった) #PHP code $a=26; print $a."ゲット"; #26ゲット #PHP code $a=26; print "$a.ゲット"; #26.ゲット http://medaka.5ch.io/test/read.cgi/php/1046326634/36
37: nobodyさん [sage] 03/02/28 11:33 ID:??? >>28 print "${a}ゲット"; print $a."ゲット"; echo $a,"ゲット"; http://medaka.5ch.io/test/read.cgi/php/1046326634/37
38: nobodyさん [sage] 03/02/28 12:12 ID:??? Perlでは関数でなくサブルーチンと呼ばれていたな。 sub foo { print "$_[0] "; return $_[0]+100; } $b= &foo(100) print $b;; #100 200 ------------------- function foo($a) { print "$a "; return $a+100; } $b= foo(100); print $b; #100 200 PHPの場合は明示的に引数を記述しておく必要がある。 可変引数は配列を渡せば良いだろう。Perlも実際は@_という配列を渡しているわけだし。 まあ、こうやって見ると両方大した違いは無く見えるが 変数のスコープについて根本的な違いがあるので注意しよう。 それについては後述。 Perlでは関数でなくサブルーチンと呼ばれていたな。 sub foo { print "$_[0] "; http://medaka.5ch.io/test/read.cgi/php/1046326634/38
39: nobodyさん [sage] 03/02/28 12:41 ID:??? シフトJISでがんがん書いてます。 http://medaka.5ch.io/test/read.cgi/php/1046326634/39
40: 俺様 [] 03/02/28 20:06 ID:R6lXT7Vm >>36 _n ( l _、_ \ \ ( <_,` ) ヽ___ ̄ ̄ ) グッジョブ!! / / >>37 _、_ ( ,_ノ` ) n  ̄ \ ( E) グッジョブ!! フ /ヽ ヽ_// http://medaka.5ch.io/test/read.cgi/php/1046326634/40
41: 俺様 [] 03/02/28 20:12 ID:R6lXT7Vm 些細なことに見えるが、 自分はこのせいで某スクリプトを PerlからPHPに移植する際に、 30分ぐらい睨めっこした記憶があるので。 頭の中に入れて起きましょう。 $a=26; print "{$a}ゲット"; print $a."ゲット"; http://medaka.5ch.io/test/read.cgi/php/1046326634/41
42: nobodyさん [] 03/03/01 11:16 ID:5K/2+grl 先生質問です。 >>9の通りしましたがapacheが起動できません。 どうやらhttpd.confのLoadModule php4_module C:/php/sapi/php4apache.dllが原因のようです php4apache.dllをphp4apache2.dllとしても同じでした。 WinME Apache2.0.39です http://medaka.5ch.io/test/read.cgi/php/1046326634/42
43: nobodyさん [sage] 03/03/01 11:44 ID:??? >>42 OS側類。 http://medaka.5ch.io/test/read.cgi/php/1046326634/43
44: 俺様 [] 03/03/01 12:12 ID:UE12tRyA >>42 Apacheは2よりも1.3.27の方がいいと思う。 後はなんだろな〜 Meなんて怪しいOS使ったことないからな。 とりあえずApacheのバージョンを変えて試してみてクレイ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/44
45: nobodyさん [] 03/03/01 12:41 ID:5K/2+grl >>44 ありがとうございます。1.3.27を使ったら起動できました。 http://medaka.5ch.io/test/read.cgi/php/1046326634/45
46: nobodyさん [sage] 03/03/01 16:35 ID:??? | | ∧ |_|Д`) < それだー!! |文|⊂) | ̄|∧|  ̄ ̄ ̄ ̄ ̄ | | ∧ |_|Д`) < それだー!! |文|⊂) | ̄|∧|  ̄ ̄ ̄ ̄ ̄ | | ∧ |_|Д`) < それだー!! |文|⊂) | ̄|∧|  ̄ ̄ ̄ ̄ ̄ | | ∧ |_|Д`) < それだー!! |文|⊂) | ̄|∧|  ̄ ̄ ̄ ̄ ̄ | | ∧ |_|Д`) < それだー!! |文|⊂) | ̄|∧|  ̄ ̄ ̄ ̄ ̄ http://medaka.5ch.io/test/read.cgi/php/1046326634/46
47: nobodyさん [sage] 03/03/01 16:36 ID:??? >>44 OS = Windowsとか思っている痛い講師がいるクソスレはココですか。 http://medaka.5ch.io/test/read.cgi/php/1046326634/47
48: 俺様 [] 03/03/01 17:05 ID:UE12tRyA >>47 世の中は理詰めだけでは解決しない。 理論ヲタになるより、わかりやすさを求める方が現実的だ。 わかるかい? しかも、PHPと直接は関係ない。 君は文学者がテイラー展開を出来なかったら馬鹿にするだろうか? では、今日はいよいよ変数のスコープについての説明だ。 あくまでも対象者は基本的に『Perlしか』やったことがない人のみ。 C言語など他の言語をやっている人には馬鹿見たく思われる説明になるからだ。 http://medaka.5ch.io/test/read.cgi/php/1046326634/48
49: nobodyさん [sage] 03/03/01 17:07 ID:??? >>48 >君は文学者がテイラー展開を出来なかったら馬鹿にするだろうか? 少なくとも数学者を目指す文学者がマクローリン展開を知らなければバカにするが。 http://medaka.5ch.io/test/read.cgi/php/1046326634/49
50: 俺様 [] 03/03/01 17:30 ID:UE12tRyA >>49 俺様はべつにオペレーティングシステムのエキスパートを目指してはいないッポ。 #Perlscript sub foo{ $a = 100; print "$a,"; $a++; } &foo(); print $a; #100,101 まあ、当たり前の結果が表示されます。 これをPHPに書き換えてみましょう。 http://medaka.5ch.io/test/read.cgi/php/1046326634/50
51: 俺様 [] 03/03/01 17:34 ID:UE12tRyA #PHPscript <?php function foo(){ $a = 100; print "$a,"; $a++; } foo(); print $a; ?> # 100, 何故か100しか表示されません!??( ̄□ ̄;)ナント!! どうして後ろの$aは表示されなかったのでしょうかという問題です。 http://medaka.5ch.io/test/read.cgi/php/1046326634/51
52: 俺様 [] 03/03/01 17:41 ID:UE12tRyA 同様の例です。 #Perl sub hoge{ print $a; } $a="俺様"; &hoge; ---------- #PHP function hoge(){ print $a; } $a="俺様"; hoge(); Perlの方だと見事、俺様と表示されるのですが、 後者の方は何も表示されないので吃驚仰天です。 http://medaka.5ch.io/test/read.cgi/php/1046326634/52
53: nobodyさん [sage] 03/03/01 17:47 ID:??? >>50 >俺様はべつにオペレーティングシステムのエキスパートを目指してはいないッポ。 いや、エンジニアでなくても車=ベンツとか思ってる奴はアホなわけで。 教養ではなく常識なのよ。常識。 http://medaka.5ch.io/test/read.cgi/php/1046326634/53
54: nobodyさん [sage] 03/03/01 18:26 ID:??? >>53 邪魔。キエロ http://medaka.5ch.io/test/read.cgi/php/1046326634/54
55: nobodyさん [sage] 03/03/01 18:33 ID:??? >>54 どうしていつものコテハンを使わないんですか? http://medaka.5ch.io/test/read.cgi/php/1046326634/55
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 546 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.775s*