Your SlideShare is downloading. ×
PHP超入門@LL温泉
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

PHP超入門@LL温泉

3,545
views

Published on

LL温泉でのPHP入門講座

LL温泉でのPHP入門講座

Published in: Technology

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,545
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
45
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PHP超入門 PHPユーザー会 / nequal sotarok id:sotarok Copyright © 2008 Sotaro KARASAWA.
  • 2. アジェンダ • PHPとは • PHPの学び方 • PHP超入門 • 参考資料 Copyright © 2008 Sotaro KARASAWA.
  • 3. PHPとは Copyright © 2008 Sotaro KARASAWA.
  • 4. PHPとは • PHPの紹介 • PHPを使うと良いところ・悪いところ Copyright © 2008 Sotaro KARASAWA.
  • 5. PHPの紹介 • PHP: Hypertext Processor • http://www.php.net/ • ほとんどウェブのために存在しているプログラミ ング言語 Copyright © 2008 Sotaro KARASAWA.
  • 6. PHPを使うと良いところ・悪いところ • PHPのよさ – カンタン • 覚えやすい • 1ページだけのちょいプログラムから、大規模フレー ムワークを使った開発まで – カンタンに記述可能 – 本格的にやろうとすればできる – 速い • ウェブプログラムの実行速度としては他の言語に比 べてすごく速い – 実績も多く情報も豊富 Copyright © 2008 Sotaro KARASAWA.
  • 7. PHPを使うと良いところ・悪いところ • PHPの悪いところ – ところどころ存在するバッドノウハウ • mb_send_mail つかっちゃだめだよ!とか – php.ini 設定がおバカ – 言語に設計思想が・・・ Copyright © 2008 Sotaro KARASAWA.
  • 8. つまり • 純粋に「プログラミング」を学ぶ言語ではない – 何かを実践する場、作りたいものを表現する場 特にそれがウェブの世界だと強力 にそれがウェブの世界だと強力 ウェブ だと Copyright © 2008 Sotaro KARASAWA.
  • 9. PHPの学び方 Copyright © 2008 Sotaro KARASAWA.
  • 10. PHPの学び方 • PHPを使う 3 つのコツ • マニュアルの読み方 Copyright © 2008 Sotaro KARASAWA.
  • 11. PHPを学ぶ3つのコツ その1 • • ; 文法を覚える • $ • その他 Copyright © 2008 Sotaro KARASAWA.
  • 12. PHPを学ぶ3つのコツ その2 • マニュアルを極める – PHPの標準関数の充実さは異常! – PHPのマニュアルの充実さは異常! • (m-takagi氏にも大感謝) – これがあるから、ネットさえあればどこからでも • HTMLをダウンロードしておけまローカルでも – 関数名なんて覚える必要ナシ Copyright © 2008 Sotaro KARASAWA.
  • 13. PHPを学ぶ3つのコツ その3 • 注意しなきゃいけない関数だけ覚える – mb_* 系関数 • 内部エンコード・ソースコードのエンコードに注意 – 脆弱性につながるもの • htmlspecialchars • 内部エンコードに注意 – バージョンによって戻り値が違ったり – その他… – ハマることによりどんどん覚える ハマることによりどんどん覚 ることによりどんどん • 探せば情報もよく出てくる せば情報もよく出 情報もよく Copyright © 2008 Sotaro KARASAWA.
  • 14. マニュアルの読み方 • 検索 – php.net/mb_strlen • mb_strlen のマニュアルページにリダイレクトされ る • 関数がなければ検索結果が表示される • 引数・戻り値・サンプルのチェック Copyright © 2008 Sotaro KARASAWA.
  • 15. マニュアルの読み方 • 検索 – php.net/mb_strlen • mb_strlen のマニュアルページにリダイレクトされ る • 関数がなければ検索結果が表示される • 引数・戻り値・サンプルのチェック Copyright © 2008 Sotaro KARASAWA.
  • 16. PHP超入門 Copyright © 2008 Sotaro KARASAWA.
  • 17. PHP超入門 • 基本のキ • 変数・演算子 • 基本構文 • 配列 • 関数 • クラスとオブジェクト指向 Copyright © 2008 Sotaro KARASAWA.
  • 18. PHP超入門 • 基本のキ • 変数・演算子 • 配列 • 基本構文 • 関数 • クラスとオブジェクト指向 Copyright © 2008 Sotaro KARASAWA.
  • 19. PHP基本のキ • PHPプログラムの書き方 • 実行のさせ方 Copyright © 2008 Sotaro KARASAWA.
  • 20. PHPプログラムの書き方 •<?php ?> で囲まれた部分がPHPのコードのブロックとなる <?php // ここが実装 ここが実装 ?> Copyright © 2008 Sotaro KARASAWA.
  • 21. PHPプログラムの書き方 • 文の最後は セミコロン; <?php echo “Hello World¥n”; ?> Copyright © 2008 Sotaro KARASAWA.
  • 22. 実行のさせ方 • % php filename.php <?php // ここが実装 ここが実装 ?> Copyright © 2008 Sotaro KARASAWA.
  • 23. PHPプログラムのコメントアウト <?php // 1行コメント # これも1行コメント これも1 /* */ これがブロックコメント これがブロックコメント ?> 実行結果 % php 01_comment.php % Copyright © 2008 Sotaro KARASAWA.
  • 24. PHPプログラムの書き方 出力 <?php echo quot;Hello World¥nquot;; ?> 実行結果 % php 02_hello.php Hello World Copyright © 2008 Sotaro KARASAWA.
  • 25. PHPプログラムの書き方 裏技 Hello World 実行結果 % php 03_hello.php Hello World Copyright © 2008 Sotaro KARASAWA.
  • 26. PHP超入門 • 基本のキ • 変数・演算子 • 配列 • 基本構文 • 関数 • クラスとオブジェクト指向 Copyright © 2008 Sotaro KARASAWA.
  • 27. 変数 • 変数に「型」はない – 自動で決まる • 変数の頭には $ をつける • 気にしないとほとんどが文字列扱い – (文字列の連結はドット「.」) – int なども連結したりすると勝手に文字列扱い Copyright © 2008 Sotaro KARASAWA.
  • 28. 変数 <?php $hoge = 1; $fuga = quot;testquot;; echo $hoge . quot;¥nquot;; echo $fuga . quot;¥nquot;; 実行結果 % php 04_var.php 1 test Copyright © 2008 Sotaro KARASAWA.
  • 29. 演算子 • < > <= >= • == === • || && Copyright © 2008 Sotaro KARASAWA.
  • 30. 厳密な比較 • == – 値を比較 (型自動変換) – quot;12aaaaaquot; == 12 : true • === – 型までチェック – quot;12aaaaaquot; === 12 : false Copyright © 2008 Sotaro KARASAWA.
  • 31. おまけ。変数の厳密な出力 • var_dump を使う – 変数の型も出力してくれる – 配列やオブジェクトもOK • デバッグには、echoやprintじゃなくてvar_dump <?php $hoge = 1; var_dump($hoge); 実行結果 % php 05_vd.php int(1) Copyright © 2008 Sotaro KARASAWA.
  • 32. PHP超入門 • 基本のキ • • 配列 (超重要) 変数・演算子 • 基本構文 • 関数 • クラスとオブジェクト指向 Copyright © 2008 Sotaro KARASAWA.
  • 33. 配列 • 配列 – 初期化にサイズの指定不要 – 型の指定も不要:型はごっちゃまぜOK – 配列も連想配列(ハッシュ)もごっちゃまぜOK • 配列の要素へのアクセス – 添え字を指定 – キー(文字列)を指定 • 配列の初期化 – array(); Copyright © 2008 Sotaro KARASAWA.
  • 34. 配列 <?php $hoge = array(); //初期化 $hoge[0] = 1; 初期化 $hoge[1] = 2; $hoge['key'] = quot;valuequot;; // 連想配列 var_dump($hoge); Copyright © 2008 Sotaro KARASAWA.
  • 35. 配列 <?php $hoge = array(); //初期化 $hoge[0] = 1; 初期化 $hoge[1] = 2; $hoge['key'] = quot;valuequot;; // 連想配列 var_dump($hoge); 実行結果 % php 06_array.php array(3) { [0]=> int(1) [1]=> int(2) [quot;keyquot;]=> string(5) quot;valuequot; } Copyright © 2008 Sotaro KARASAWA.
  • 36. 配列 <?php // 初期化時に代入の例 // これは先ほどの配列と同じ 初期化時に代入の $hoge = array( これは先ほどの配列 配列と 0 => 1, // 配列の添え字 => 値 という風に表現 1 => 2, 配列の という風 'key' => quot;valuequot;, ); Copyright © 2008 Sotaro KARASAWA.
  • 37. PHPにおいて配列は大変重要 • 何かの戻り値 • オプション指定 Copyright © 2008 Sotaro KARASAWA.
  • 38. PHP超入門 • 基本のキ • 変数・演算子 • 配列 • 基本構文 • 関数 • クラスとオブジェクト指向 Copyright © 2008 Sotaro KARASAWA.
  • 39. 基本構文 • if else elseif • while • do-while • for • foreach • switch case • break continue • require require_once • include include_once Copyright © 2008 Sotaro KARASAWA.
  • 40. 基本構文 • if else elseif • while • do-while • for • foreach • switch case • break continue • require require_once • include include_once Copyright © 2008 Sotaro KARASAWA.
  • 41. foreach • 配列をグリグリまわす。最初から最後まで。 • イテレーターをグリグリまわす。 – 配列だろうが – 連想配列だろうが – なんだろうが – とにかくまわす Copyright © 2008 Sotaro KARASAWA.
  • 42. foreach の使い方 foreach ($array as $val) { // なにかしらの処理 } または foreach ($array as $key => $val) { // なにかしらの処理 } Copyright © 2008 Sotaro KARASAWA.
  • 43. foreach <?php $array = array( 0 => 1, 1 => 2, 'key' => quot;valuequot;, ); foreach ($array as $val) { echo $val . quot;¥nquot;; } Copyright © 2008 Sotaro KARASAWA.
  • 44. foreach <?php $array = array( 0 => 1, 1 => 2, 'key' => quot;valuequot;, ); foreach ($array as $val) { echo $val . quot;¥nquot;; } 実行結果 % php 07_foreach.php 1 2 value Copyright © 2008 Sotaro KARASAWA.
  • 45. foreach (keyも使う) <?php $array = array( 0 => 1, 1 => 2, 'key' => quot;valuequot;, ); foreach ($array as $key => $val) { echo $key . quot; => quot; . $val . quot;¥nquot;; } 実行結果 % php 08_foreach.php 0 => 1 1 => 2 key => value Copyright © 2008 Sotaro KARASAWA.
  • 46. foreach (イテレーター) • Iterator Interface を実装したクラスなら foreach できる – 実装しないといけないメソッド • next • valid • current • rewind • key Copyright © 2008 Sotaro KARASAWA.
  • 47. require/include • 外部のファイルを読み込む • require – ファイルが読み込めない場合 Fatal Error • include – ファイルが読み込めない場合 Warning Copyright © 2008 Sotaro KARASAWA.
  • 48. include <?php include '08_foreach.php'; 実行結果 % php 09_include.php 0 => 1 1 => 2 key => value Copyright © 2008 Sotaro KARASAWA.
  • 49. include <?php include '09_foreach.php'; echo quot;end¥nquot;; Copyright © 2008 Sotaro KARASAWA.
  • 50. include <?php include '09_foreach.php'; echo quot;end¥nquot;; 実行結果 % php 10_include.php PHP Warning: include(09_foreach.php): failed to open stream: No such file or directory in /home/sotaro/php/LLOnsen/10_include.php on line 3 Warning: include(09_foreach.php): failed to open stream: No such file or directory in /home/sotaro/php/LLOnsen/10_include.php on line 3 PHP Warning: include(): Failed opening '09_foreach.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /home/sotaro/php/LLOnsen/10_include.php on line 3 Warning: include(): Failed opening '09_foreach.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /home/sotaro/php/LLOnsen/10_include.php on line 3 end Copyright © 2008 Sotaro KARASAWA.
  • 51. include <?php require '09_foreach.php'; echo quot;end¥nquot;; 実行結果 % php 11_require.php PHP Warning: require(09_foreach.php): failed to open stream: No such file or directory in /home/sotaro/php/LLOnsen/11_require.php on line 3 Warning: require(09_foreach.php): failed to open stream: No such file or directory in /home/sotaro/php/LLOnsen/11_require.php on line 3 PHP Fatal error: require(): Failed opening required '09_foreach.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/sotaro/php/LLOnsen/11_require.php on line 3 Fatal error: require(): Failed opening required '09_foreach.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/sotaro/php/LLOnsen/11_require.php on line 3 Copyright © 2008 Sotaro KARASAWA.
  • 52. *_once • 同じファイルは1度しか呼ばれない <?php include '08_foreach.php'; // 読み込まれる include '08_foreach.php'; // 読み込まれる <?php include_once '08_foreach.php'; // 読み込まれる include_once '08_foreach.php'; // 読み込まれない Copyright © 2008 Sotaro KARASAWA.
  • 53. include/require どっちをつかう? • ほとんど require_once – 読み込めなくても進んで大丈夫なんてプログラム はほとんどない Copyright © 2008 Sotaro KARASAWA.
  • 54. PHP超入門 • 基本のキ • 変数・演算子 • 配列 • 基本構文 • 関数 • クラスとオブジェクト指向 Copyright © 2008 Sotaro KARASAWA.
  • 55. 関数 function 関数名 (引数1 [, 引数2 …] ) { // 実装 } で定義。 関数名(引数 …); でコール Copyright © 2008 Sotaro KARASAWA.
  • 56. 関数 • 引数の型宣言も戻り値の型宣言も不要 • 関数の中ではスコープが限定される – 例えば関数の外で定義した $hoge は関数の中では 利用不可能 Copyright © 2008 Sotaro KARASAWA.
  • 57. 関数 <?php function greeting($name) { echo quot;Hello quot; . $name . quot;¥nquot;; } greeting(quot;sotarokquot;); 実行結果 % php 12_function.php Hello sotarok Copyright © 2008 Sotaro KARASAWA.
  • 58. 関数 return <?php function greeting($name) { return quot;Hello quot; . $name . quot;¥nquot;; } echo greeting(quot;sotarokquot;); 実行結果 % php 13_function.php Hello sotarok Copyright © 2008 Sotaro KARASAWA.
  • 59. 関数 オプション引数 <?php function greeting($name = quot;suzukiquot;) { return quot;Hello quot; . $name . quot;¥nquot;; } echo greeting(); echo greeting(quot;sotarokquot;); 実行結果 % php 14_function.php Hello suzuki Hello sotarok Copyright © 2008 Sotaro KARASAWA.
  • 60. 可変関数 • 変数を関数名としてコール可能 • 後ろにカッコがついていれば、関数とみなす Copyright © 2008 Sotaro KARASAWA.
  • 61. 可変関数 <?php function greeting($name = quot;suzukiquot;) { return quot;Hello quot; . $name . quot;¥nquot;; } $func = quot;greetingquot;; echo $func(quot;sotarokquot;); 実行結果 % php 15_function.php Hello sotarok Copyright © 2008 Sotaro KARASAWA.
  • 62. PHP超入門 • 基本のキ • 変数・演算子 • 配列 • 基本構文 • 関数 • クラスとオブジェクト指向 Copyright © 2008 Sotaro KARASAWA.
  • 63. PHPのオブジェクト指向 • クラス • 継承 • オーバーロード • アブストラクトクラス • インターフェース • メソッド・プロパティのアクセス権 Copyright © 2008 Sotaro KARASAWA.
  • 64. クラスの作り方 <?php class Greeting { public function hello($name = quot;suzukiquot;) { return quot;Hello quot; . $name . quot;¥nquot;; } } Copyright © 2008 Sotaro KARASAWA.
  • 65. クラスの使い方 <?php class Greeting { public function hello($name = quot;suzukiquot;) { return quot;Hello quot; . $name . quot;¥nquot;; } } <?php $obj = new Greeting(); echo $obj->hello(); Copyright © 2008 Sotaro KARASAWA.
  • 66. コンストラクタ/デストラクタ <?php class Greeting { public function __construct() { echo quot;object create!¥nquot;; } public function hello($name = quot;suzukiquot;) { return quot;Hello quot; . $name . quot;¥nquot;; } } Copyright © 2008 Sotaro KARASAWA.
  • 67. 継承・オーバーライド <?php class Hello extends Greeting { public function hello($name = quot;suzukiquot;) { return quot;How are you quot; . $name . quot; ?¥nquot;; } } Copyright © 2008 Sotaro KARASAWA.
  • 68. PHPのオブジェクトについて • http://www.php.net/manual/ja/language.oop5.php Copyright © 2008 Sotaro KARASAWA.
  • 69. 参考資料 Copyright © 2008 Sotaro KARASAWA.
  • 70. 参考資料 (1) まずはここをチェック • PHP マニュアル – http://www.php.net/manual/ja/ • 日本PHPユーザー会 – http://www.php.gr.jp/ – あまり情報は豊富ではない(ぉ Copyright © 2008 Sotaro KARASAWA.
  • 71. 参考資料 (2) 本がほしいなら • はじめてのPHPプログラミング 基本編 – 著:下岡 秀幸、 中村 悟 – 出版:秀和システム • ノン・プログラマのためのPHP入門 10日間コース – (とはいえ、実務向け) – 著:アシアル(株)、海原 才人 、笹亀 弘 – 出版:翔泳社 Copyright © 2008 Sotaro KARASAWA.
  • 72. 参考資料 (3) 勉強会やコミュニティへ参加 • events.php.gr.jp – http://events.php.gr.jp/ – PHPユーザー会が運営しているPHP関連のイベン – PHP勉強会(毎月)や各フレームワークの勉強会も ト情報サイト • PHPカンファレンス – 毎年7~8月ごろ開催 • IRC – %PHPStudy (wide) Copyright © 2008 Sotaro KARASAWA.
  • 73. 参考資料 (4) アンテナを伸ばす • ブログをチェック – PHPユーザー会の planet (http://planet.php.gr.jp/) – PHPユーザーのいろいろな人のブログがある • 雑誌のコラムなど – 最新の情報がいろいろと載っている – WEB+DB Pressなど • 身近なPHPユーザーをTwitterやWassrでフォロー Copyright © 2008 Sotaro KARASAWA.
  • 74. おつかれさまでした • わからないことがあればsotarokへなんでも聞いて ください! Copyright © 2008 Sotaro KARASAWA.