PHPの勉強方法と初心者おすすめの本

ENJI

large_3191872515

「PHPがわかったらなぁっ」ていう願う人は多いのではないでしょうか?

Webサービスを作るまではいかなくてもWordPressのちょっとしたカスタマイズなどPHPがわかると出来ることが格段に広がり、様々なことが自動化できて楽になります。

プログラムには様々な言語がありますが、ちょっとしたホームページやブログのカスタマイズならPHPでほぼ対応できます。PHPは、プログラム言語の中でも比較的習得が簡単と言われておりますが、実際にチャレンジしてみて挫折した人も多いはず。

PHPの初心者向けの本は多数ありますが、PHPを習得するのは言われるほど簡単ではないと僕は思います。現場で学べたり、良い先生が近くにいれば良いのですが、そんな恵まれた環境にいない人も多いはずです。

今回は、独学でPHPがちんぷんかんぷんだけど、大体見えてくるようになる僕なりの方法をご紹介します。

photo credit: drewm via photopin cc

スポンサーリンク

必要な知識

photo credit: plugimi via photopin cc

photo credit: plugimi

HTMLの知識は必要です。もしわからない場合はまず、HTMLを学習しましょう。

また、ブラインドタッチも出来ると役に立ちます。これはプログラムに限った話ではありません。ブラインドタッチは「やる気」と「慣れ」なのでなるべく早めに手を付けましょう。ピアノやギターでは小指がつりそうな僕でもなんとか出来るようになりました。

ブラインドタッチについては多くのフリーサービスもありますが、僕はかなり昔ですが「特打」で上達しました。「何指を使うのか?」などがよくわかり、お勧めです。すぐにダウンロードできるので覚えたい人はぜひ始めてみて下さい。(※windows)

[amazonjs asin="B0054IEY4G" locale="JP" title="特打 ダウンロード"]

初心者がPHPを覚えることが出来ない理由

本を購入してもなかなか初心者がPHPを理解できない理由は

  • 言語が、理解できない。
  • いきなり突き放される。
  • 本のコードにバグがある。

という3つの大きな理由の可能性が高いです。

言語が、理解できない。

PHPだけには限りませんが、プログラムには「変数」「配列」「関数」「定数」などなど、「数学出来ないと無理じゃね?」みたいな馴染みのない言葉がガンガン出てきます。「変数」や「配列」はわかってしまえば簡単ですが腹に落ちるまではなかなか不可思議な存在です。「箱?入れ物?変数と配列は同じなの?どうなの?」みたいな。そんな意味不明の言語が連続で出てくると読んでいるうちに頭からケムリが出てきて、

ハイ

オッパッピー!!

ってなります。

いきなり突き放される。

結構多くの本に見られるのですが、途中まで良い感じで勉強できていても、いきなりわからない関数等が出てきて突き放されます。

「えっ?」って。

彼氏とドライブに出て高速でいきなり下ろされる感じ。

PHP書籍の著者は当然、PHPにめちゃくちゃ詳しい人ばかりなので「これくらいはわかるよね?」的なコードが大した説明がなく突如として現れたりするので初心者はその時点で遠い目になります。だいたい、本の中頃あたりでふいに出ます。

本のコードにバグがある。

本の通りにコードを記載しても上手くプログラムが動かない場合が往々にあります。
そんな時は、「本の名前 正誤表」などでググれば大体どの本も用意されているのですが結構、記載ミスがあります。致命的。初心者には当然わかるはずもなく途方に暮れてしまうのです。

PHPのおすすめの本と勉強法

PHPを勉強する上では

  • とにかくコードを書くこと
  • 簡単なプログラム(掲示板など)を作成してみる事

とよく言われますが、HTMLくらいしかわからないレベルの状態で模写を始めてもなかなか理解できません。僕がまず、PHPを覚えるために必要なことは「全体を見る事」だと思います。これは「簡単なプログラム(掲示板など)を作成してみる事」に当たるのですが、いきなりこれを始めれば良いというわけではなくここに来るにも手順が必要です。

そして、もう一つ大事なのはココまでくる間は無理に覚えようとしない事です。「あ~、そういうのがあるのか~。よ~わからん。」で良いと思います。

まずは言語をボヤッと知る

IMG_5457

まず、「変数」や「配列」など基本的な言語を簡単に知るため(覚えるためではなく「知る」ため)にお勧めなのが、「PHPの絵本」です。この本でPHPがわかるようにはなかなかならないと思います。「論理型」とか「NULL」とか「スコープ」とか言われてもオッパッピーですが、PHPにはそういうのがあるのだとめげずにとりあえず「最後まで読む」事が重要です。

この時点では、まだコードを書いたりサンプルを作る必要はないかなと個人的には思います。

[amazonjs asin="479811264X" locale="JP" title="PHPの絵本"]

やっぱり、おすすめ「よくわかるPHPの教科書」

IMG_5456

そして、次に理解を深めるのにお勧めなのが「よくわかるPHPの教科書(たにぐちまこと)」です。先日、セキュリティ面で注意記事(後述)がありましたが、それでも僕はかなりお勧めだと思います。この本の良いところは

  • ミス記述が少ない
  • 突き放されない(いきなり、わからない事にならない。)
  • 必要なこと以外掲載されていない
  • わかりやすいサンプルがある

という4点に尽きます。

僕が持っているのは第10刷ですが、だいたい8刷の時点で記事修正が完了しています(正誤表)。そして、だいたいのPHPの本は「hello word」から始まって「正規表現」や「クラス」「オブジェクト指向」など盛り沢山ですが、この本にはPHPで巻末で作るサンプルのためくらいの必要最低限の内容しか記載されていません。

その為、混乱せずにPHPとMySQLを使用してどういうことが出来るのか?という全体を知ることが出来ます。

用意されているサンプルはデータベースを使用した基本的なプログラムと「Twitter風のひとこと掲示板」です。

この、余計な知識はまず置いておいてPHPで出来る事やそれぞれの「意味」の基本を掴めるとようやくPHPを学んで利用していく入口に立つ事が出来るはずです。つまり「変数」や「配列」が実際にどう使われるのか?という事などですね。

[amazonjs asin="4839950644" locale="JP" title="よくわかるPHPの教科書 【PHP5.5対応版】"]

但し、これらのコードは「もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら」にて「安全なWebアプリケーションの作り方」の著者、徳丸浩さんに脆弱性を指摘されていますので、一通り制作してみた後に読むと、良い勉強になると思います。

[amazonjs asin="4797361190" locale="JP" title="体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践"]

1点だけ「置いて行かれる」箇所について

先ほど置いて行かれないと、言いましたが一点だけ「?」となるページがあります。P238の

<!--?php if($error['email']=='blank'):-->

* メールアドレスを入力して下さい

<!--?php endif; ?-->

 の箇所です。それまでの説明の「if文」には

if(条件){
繰りかえしの内容
}else{
...

 しか出てこないので、いきなり「endif」が出てきてわからない人は「;」ではなく「:」である事も「ポカーン」となるかもしれません。些細なことですが本当にこういう事で迷宮に入っちゃうんですよ。最初は・・・

参考 http://aym.pekori.to/php/migration.if-endif.html

本を理解する手順

僕は、以下の順だと初心者の方でも頭に入りやすいかなと考えます。

  • まず、「よくわかるPHPの教科書」を最後まで読む。よくわからなくても最後までとにかく読む。
  • そして今度は最初からサンプル作成前まで読む。よくわからなくても最後までとにかく読む。
  • 次にノートに書いて、サンプル作成前まで少し「覚えようとしてみる」
  • 次にローカル環境で実際にサンプル前までコードを書いてみる
  • 最後にレンタルサーバーで「ひとこと掲示板」を作成してみる

非常に何度も繰り返しで面倒に感じるかもしれませんが、勉強の肝は「繰り返し、復習」です。
最後の頃にはPHPで出来る事が割合とハッキリ見えてくると思います。そうなれば、応用や「こういう時は?」という感じで意味のある学びを進める事が出来るはずです。

レンタルサーバーでの作成してみる

ローカルではなく、実際にレンタルサーバーで作成するとより理解が深まります。(但しレンタルサーバーでのPHPの練習は禁止されています。作成する上で十分な知識がついてから使用しましょう。)

今回は「エックスサーバー」を例にしてみます。
基本的なことはローカルと変わりませんが初めてだとデータベースに接続するためのユーザ名やパスワードが異なる点でも躓くとかもしれません。

mysql_connect('ホスト名','ユーザ名','パスワード') or die(mysql_error());

  まずは、最初のデータベースの作成になりますが、本にあるようなphpMyAdminからの新規データベースの作成はレンタルサーバーでは禁止されている場合があります。エックスサーバーも同様です。

2014-03-11_1750271

その為、最初のデータベースはサーバーの管理画面より作成します。

 2014-03-12_085928

2014-03-12_085955

2014-03-12_090102

本書では「mini_bbs」の作成を説明されていますがサーバーにてデフォルトの名称が最初から設定されていますので「(デフォルトの名称)_minibbs」などで作成してみます。あと、画像が「ECU-JP」になっちゃってますが「UTF-8」にして作成します。

2014-03-12_090143

「MySQLユーザーの追加」で設定する「ユーザーID(ユーザ名)」と「パスワード」は接続時に使用するのでメモしておきましょう。

2014-03-12_090305

「MySQL一覧」にてユーザーを設定すれば準備完了です。

2014-03-12_090355

先ほどの「ID」と「パスワード」で管理画面の「phpMyAdmin」よりphpMyAdminに入れるようになります。

2014-03-11_175027

①のところをデータベース接続の「ホスト名」に記載して、前述の「ユーザーID(ユーザ名)」と「パスワード」を記入すればOKです。後は本の通り進めれば大丈夫です。

相対パスについて

また、相対パスについても理解をしておく必要があります。その点は下記の記事がわかりやすいです。

参考 http://masaboo.cside.com/new_html1/ht_67.htm

次のステップにおすすめの本

IMG_5458

紹介した「よくわかるPHPの教科書(たにぐちまこと)」は最初の取っ掛かりとして最適な本ですが、まだまだPHPには学ぶべき事があります。そういった上で次にお勧めなのが「PHP+MySQLマスターブック」です。この本は初版が2014年1月と新しく、「クラス」や「PDO」、その他のよく使うであろう関数や「よくわかるPHPの教科書」には触れられなかった点がわかりやすく記載されています。サンプルの制作方法も「よくわかるPHPの教科書」とはまた異なっており、勉強になると思います。

[amazonjs asin="4839947597" locale="JP" title="PHP+MySQLマスターブック"]

WordPressのカスタマイズ

IMG_5461

これらで得た基本的なPHPの知識を元にWordPressのカスタマイズに臨むなら「基礎からのWordPress」がお勧めです。著者の高橋のりさんはブログの「Webデザインレシピ」同様に初心者への痒いところに手が届く細かい配慮された内容で且つ、初心者と題しながらWordPressの仕組みを非常にわかりやすく説明してくれています。

 [amazonjs asin="4797369469" locale="JP" title="基礎からのWordPress (BASIC LESSON For Web Engineers)"]

 ここまで来たら、あとはどんどん手を動かして色々なものを作成していくだけだと思います。サンプル中心の本、「Webサイト制作者のためのPHP入門講座」には「ぐるなびWebサービスのモデル作成」が掲載されています。

 [amazonjs asin="4774145254" locale="JP" title="Webサイト制作者のための PHP入門講座"]

まとめ

「PHPなんて簡単だ!」という言葉に騙されて甘く見ていると、なかなか最初の「山」を越えれないんですよね。。

僕自身もまだまだですが、特に最初の頃はオッパッピーの連続でした。読んでいる方のレベルによって良い参考書も学び方も違いがあるとは思いますが、オッパッピーな方はぜひ参考にしてみて下さい。

-WordPress