php 入門

20
PHP 入門

Upload: shuhei-iitsuka

Post on 20-Dec-2014

1.171 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: PHP 入門

PHP 入門

Page 2: PHP 入門

PHP って何?● プログラミング言語● 最初から色々関数が入っててとっつきやすい● プログラミング言語の設計として、汚い部分も

ある● 逆に、 PHP の汚さが分かるところまで、プロ

グラミングを学ぶと良いと思います

Page 3: PHP 入門

プログラミングを学ぶということ● プログラミングは書けるようになるまで、他の

プログラミング言語に浮気しないことが重要● 一個出来るようになれば、次の言語はすぐ出来るよ

うになる● 二個出来るようになれば、だいたいどんな言語もす

ぐ出来るようになる● ひたすらたくさんのコードを書きまくることも

重要● プログラミングが書けるようになるとはどうい

ことか?● 「式」と「文」の理解 (基礎力)● 思い通りの「処理」と「値」を定義できて、それら

の「整理と名前付け」が出来る (応用力)

Page 4: PHP 入門

ロードマップ

https://cacoo.com/diagrams/KEzduTiEHpW5dTYB

Page 5: PHP 入門

プログラミングを学ぶということ● 重要なのでもう一度まとめます

● 過程– 書けるようになるまで浮気しない– ひたすら書く– 辛くなったら、ロードマップを思い出す

● ゴール– 式と文の理解– 値の定義の上達– 処理の定義の上達– 値、処理の命名と整理能力

Page 6: PHP 入門

Hello world!

<?

echo "Hello world!\n";

● PHP の実行の仕方を覚える

Page 7: PHP 入門

値<?

echo "hoge hoge\n";echo 1;echo true;echo null;

● echo の横に値を書くと echo によってその値が出力されることを理解する

● echo を使った出力だと分かりにくいので次のページへ

Page 8: PHP 入門

値<?

var_dump("hoge hoge\n");var_dump(1);var_dump(true);var_dump(null);

● echo の出力は null と false と “” の区別が出来なかったりする

● var_dump を使うと値の詳細を出力することが出来る

● 文字列、数値、真偽値、 null をマスターしよう

Page 9: PHP 入門

演算子<?

var_dump(1 + 1); # +演算子var_dump(1 . '2'); # .演算子var_dump(true and false); # and演算子

● 演算子は、両辺に値を取って別の値を生成する● + - / * % and or は良く使うので覚える● ポイント

● 「1」も値だけど「1 + 1」も「2」という値を生成する

● 値の生成は実行時に演算子が「評価」されることで行われる

● var_dump はそこにある値を出力するだけ

Page 10: PHP 入門

演算子<?

var_dump(1 + 1 * 3);

● 演算子には、優先順位があって、実行時に優先順位が高いほうから評価されて値が生成される● 1 * 3 が評価されて 3 が生成され● 1 + 3 が評価されて 4 が生成される

● () を使うと、優先順位の影響を受けない

Page 11: PHP 入門

変数<?

$hoge = "Hello world!\n";

var_dump($hoge);

● 変数は代入 (=) によって値を記憶し、実行時に「評価」されたときに記憶した値を生成する

Page 12: PHP 入門

変数 & 演算子<?

$hoge = 1 * 2;$fuga = 3 + $hoge;

var_dump($fuga);

● 1 * 2 の結果が評価され、 $hoge に記憶され● $hoge が評価され 2 を生成する● 3 + 2 が評価され 5 を生成する● 5 が $fuga に記憶され● $fuga が評価され 5 を生成する● var_dump が 5 を出力する

Page 13: PHP 入門

関数<?

function fn($a, $b) { # 処理の保存 $c = $a + $b; return $c * 4;}

var_dump(fn(1, 2)); # 関数の評価var_dump(fn(3, 4));

● 関数は処理を保存し、 return 文で値を「返す」

● 関数は () に値のリストを記述することで評価することができる

● 関数は評価されると return 文で返された値を生成する

Page 14: PHP 入門

演算子 & 関数<?

function add($a, $b) { return $a + $b; }function mul($a, $b) { return $a * $b; }

var_dump((1 + 1) * 3 * 4);var_dump(mul(mul(add(1, 1), 3), 4));

● 演算子も関数も「値を使って、評価されると値を生成する」という意味で本質的には文法は違うが同じようなものである

Page 15: PHP 入門

組み込み関数<?

var_dump(file_get_contents('http://www.google.com/'));

● 基本的にプログラミング言語は、値を使って演算子や関数を評価して値を生成するという機能しかない

● それ以外の機能は、組み込み関数という形で提供される

● var_dump や file_get_contents が組み込み関数

Page 16: PHP 入門

式<?

var_dump('hoge'); # リテラル式var_dump(1 + 1); # 二項式var_dump(add(1, 1)); # 関数呼び出し式

● 式とは● 評価され値を生成するプログラム上の単位

● 値を使う場所には、常に式を置くことが可能(重要!!)

Page 17: PHP 入門

条件分岐<?

if (1 + 1) { var_dump('ok');}else { var_dump('ng');}

● if 文を使うと、式が生成する値を使って実行する処理を切り替えることが出来る● 式の値が '' や 0 や null や false 以外の場合は else

よりの前の処理を実行する● switch 文もある

Page 18: PHP 入門

繰り返し<?

$hoge = 10;

while ($hoge) { $hoge = $hoge - 1; var_dump($hoge);}

● while 文を使うと、 if 文と同様に式を評価して式の値が '' や 0 や null や false になるまで処理を繰り返し実行してくれる

Page 19: PHP 入門

データ構造<?

$arr = arary(1, 2, array(3, 3, 1 + 1 * 1));var_dump($arr[2][2]);

● 配列や連想配列を使うと、複数の値を階層的に持った値を作ることができる

● 配列も値であり、 array() も値であり配列リテラルという式である

Page 20: PHP 入門

オブジェクト<?

class Hoge { var $a; var $b; function __construct($a, $b) { $this->$a = $a; $this->$b = $b; } function calc() { return $a + $b; }}

$hoge = new Hoge(1, 3);var_dump($hoge->calc());

● あるデータ構造だけに対して評価できる関数を作るための仕組みがオブジェクトである

● オブジェクトも値である, new も式である