のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,329,902人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【待望】PerlユーザのためのPHP入門

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    1 : 俺様 - 03/02/27 15:17 ID:tJsRCtRD.net (+125,+29,-74)
    見事Perl→PHPへの脱皮に成功した俺様が
    両者の違いを中心に講義してやる。
    今までPerlマンセーだったやつはこれを機にPHPに変更しよう也。
    質問もガンガン書いてくれ。
    このPerlの文はPHPだとどう書くの?とか。
    2 : nobodyさん - 03/02/27 15:19 ID:???.net (+35,+29,+0)
    このスレ結構ありがたいかも。
    >>1
    ありが㌧
    3 : 俺様 - 03/02/27 15:19 ID:tJsRCtRD.net (+91,+28,-32)
    まず、両者には似てる部分も非常に多いというのは特徴だ。
    例えば変数の宣言、初期化をしてみよう。
    $foo = 0;
    頭に$をつけるところも、型を特に指定する必要がないことも、
    文末は;になることもみんな一緒だ。

    ほら、簡単に移行できそうに思えてきただろ?
    4 : 俺様 - 03/02/27 15:31 ID:tJsRCtRD.net (+35,-30,-134)
    とりあえずHello, world!を出力してみるぞ。

    <?
    print "Hello, world!\n";
    ?>

    printの意味はperlと一緒だ。
    まあ、printよりecho使う人が多いがそんなに違いはない。
    perlユーザならわかりやすい方が(・∀・)イイ!だろう。

    プログラムの開始と終了は<?と?>で囲むんだ。
    これはPHP特有だから早く覚えよう。
    <?じゃなくて<?phpで囲んでもOK。将来XMLとの連携を考えるなら
    後者で書く癖をつけたほうが良いとは言われている。
    6 : nobodyさん - 03/02/27 15:39 ID:???.net (-19,-29,-27)
    PHPでrequireするファイルは必ず<?php ?>で囲まなきゃダメ?
    7 : 俺様 - 03/02/27 15:50 ID:tJsRCtRD.net (+35,-30,-172)
    とりあえず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としてしか使えないから駄目。間違えるなよ。
    8 : 俺様 - 03/02/27 15:55 ID:tJsRCtRD.net (+84,+26,-32)
    >>6
    どういう用途で用いるのか知らんが
    PHPスクリプトをrequire()するなら当然
    そっちも<? ?>は必要だぞ。

    まあ、聞くより自分で確かめたほうが早いだろう。
    9 : 俺様 - 03/02/27 15:59 ID:tJsRCtRD.net (+86,+29,-72)
    PHPのインストールについては
    詳しく解説しているところを見たほうが早いか。
    始めたばかりの頃俺が参考にした所だ。

    http://www.php-j.com/tutorial/install/win.php

    では各自ローカルでPHPを動かせるようにしておきましょう。
    その瞬間からPerlとはおさらばだ!
    10 : nobodyさん - 03/02/27 16:05 ID:???.net (+22,+29,-2)
    俺様、がんがれよ。
    12 : 俺様 - 03/02/27 17:15 ID:tJsRCtRD.net (+81,+29,-4)
    >>11
    そこのじゃ嫌なのか?
    そこからで全然問題ないと思うが。
    13 : nobodyさん - 03/02/27 17:57 ID:???.net (-20,-18,+1)
    おお,このスレはありがたい.がんがってください.
    15 : 俺様 - 03/02/27 20:27 ID:tJsRCtRD.net (+35,-30,-153)
    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がお奨め。
    16 : nobodyさん - 03/02/27 21:11 ID:???.net (-28,-30,-132)
    質問なんですけど、
    関数の引数にハッシュを使う方法ってありますか?
    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";
    }
    でも無理でした。
    17 : 俺様 - 03/02/27 21:36 ID:tJsRCtRD.net (-23,-29,-9)
    >>16
    PHP固有の質問はこっちへ書き込もうぜ。

    【PHP】質問スレッド Part7
    http://pc2.2ch.net/test/read.cgi/php/1044478561/l50
    18 : nobodyさん - 03/02/28 04:10 ID:???.net (-21,-30,-67)
    (PerlCode)
    $name="john";
    $say=sub{return "My name is $_[0].";};
    print &{$say}($name);

    はPHPで書くとどうなりますか?
    19 : nobodyさん - 03/02/28 06:25 ID:???.net (+1,+6,-1)
    >>18
    俺のPerl自慢。

                      つづく
    21 : nobodyさん - 03/02/28 09:16 ID:TC5rJBdj.net (+24,+29,-41)
    そんなもんをXHTMLに埋め込んだら、見苦しくて死ぬぞ。
    ブラウザでパースもできんようになるし。
    MVCにしろや。
    22 : 俺様 - 03/02/28 10:31 ID:???.net (+26,+29,-89)
    >>20
    お答えサンクス。

    と、いうわけでもうインストールはばっちしだと思うので
    今日はユーザー定義関数についてから話そう。
    超独自仕様のPerとの大きな違いの1つだ。
    まあ、はっきり言っちゃえば
    >>18みたいな書き方はPerlではごく普通だが
    Perl知らない人から見れば何なのかさっぱりってほど特殊だ。
    それに比べてPHPの>>20は他の言語
    (例えばJavaとか)しか知らない人が見ても何となく理解できるだろう。
    24 : 俺様 - 03/02/28 10:51 ID:???.net (-27,-30,-102)
    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も実際は@_という配列を渡しているわけだし。
    まあ、こうやって見ると両方大した違いは無く見えるが
    変数のスコープについて根本的な違いがあるので注意しよう。
    それについては後述。
    26 : nobodyさん - 03/02/28 11:04 ID:???.net (+26,+29,-12)
    講座スレ作ろうとする奴って大体理論が崩壊してるよな・・・。
    27 : nobodyさん - 03/02/28 11:04 ID:???.net (-27,-30,-102)
    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も実際は@_という配列を渡しているわけだし。
    まあ、こうやって見ると両方大した違いは無く見えるが
    変数のスコープについて根本的な違いがあるので注意しよう。
    それについては後述。
    30 : 俺様 - 03/02/28 11:10 ID:0fBPA0cl.net (-12,+29,-44)
    >>26
    俺様はPHP歴浅いので
    崩壊どころか理論自体形成されていない。
    だからこのスレタイは入門だ。
    間違いはがんがん指摘してクレイ!
    31 : nobodyさん - 03/02/28 11:13 ID:njt3nQcM.net (+20,+26,-4)
    >>30
    俺はPHPすら分からない。
    だから、がんがん解説してクレイ!
    33 : 俺様 - 03/02/28 11:21 ID:0fBPA0cl.net (-24,+29,-25)
    >>32
    それは便利だな。
    では今後はそこに載ってないやつを指摘していくことにしよう。
    35 : nobodyさん - 03/02/28 11:26 ID:???.net (-27,-30,-115)
    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] ";
    38 : nobodyさん - 03/02/28 12:12 ID:???.net (-27,-30,-115)
    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] ";
     
    43 : nobodyさん - 03/03/01 11:44 ID:???.net (-21,-2,+0)
    >>42
    OS側類。
    47 : nobodyさん - 03/03/01 16:36 ID:???.net (-2,+13,-14)
    >>44
    OS = Windowsとか思っている痛い講師がいるクソスレはココですか。
    48 : 俺様 - 03/03/01 17:05 ID:UE12tRyA.net (-14,+30,-111)
    >>47
    世の中は理詰めだけでは解決しない。
    理論ヲタになるより、わかりやすさを求める方が現実的だ。
    わかるかい?
    しかも、PHPと直接は関係ない。
    君は文学者がテイラー展開を出来なかったら馬鹿にするだろうか?

    では、今日はいよいよ変数のスコープについての説明だ。
    あくまでも対象者は基本的に『Perlしか』やったことがない人のみ。
    C言語など他の言語をやっている人には馬鹿見たく思われる説明になるからだ。
    49 : nobodyさん - 03/03/01 17:07 ID:???.net (+13,+29,-58)
    >>48
    >君は文学者がテイラー展開を出来なかったら馬鹿にするだろうか?

    少なくとも数学者を目指す文学者がマクローリン展開を知らなければバカにするが。
    1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について