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

PHP超入門@LL温泉

on

  • 5,400 views

LL温泉でのPHP入門講座

LL温泉でのPHP入門講座

Statistics

Views

Total Views
5,400
Views on SlideShare
5,249
Embed Views
151

Actions

Likes
5
Downloads
44
Comments
0

8 Embeds 151

http://mankin.jp 121
http://coderwall.com 19
http://www.slideshare.net 4
http://toguo.g.hatena.ne.jp 2
http://d.hatena.ne.jp 2
http://localhost 1
http://cloud.feedly.com 1
http://geechscamp.lovepop.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

PHP超入門@LL温泉 PHP超入門@LL温泉 Presentation Transcript

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