php 入門
DESCRIPTION
TRANSCRIPT
PHP 入門
PHP って何?● プログラミング言語● 最初から色々関数が入っててとっつきやすい● プログラミング言語の設計として、汚い部分も
ある● 逆に、 PHP の汚さが分かるところまで、プロ
グラミングを学ぶと良いと思います
プログラミングを学ぶということ● プログラミングは書けるようになるまで、他の
プログラミング言語に浮気しないことが重要● 一個出来るようになれば、次の言語はすぐ出来るよ
うになる● 二個出来るようになれば、だいたいどんな言語もす
ぐ出来るようになる● ひたすらたくさんのコードを書きまくることも
重要● プログラミングが書けるようになるとはどうい
ことか?● 「式」と「文」の理解 (基礎力)● 思い通りの「処理」と「値」を定義できて、それら
の「整理と名前付け」が出来る (応用力)
ロードマップ
https://cacoo.com/diagrams/KEzduTiEHpW5dTYB
プログラミングを学ぶということ● 重要なのでもう一度まとめます
● 過程– 書けるようになるまで浮気しない– ひたすら書く– 辛くなったら、ロードマップを思い出す
● ゴール– 式と文の理解– 値の定義の上達– 処理の定義の上達– 値、処理の命名と整理能力
Hello world!
<?
echo "Hello world!\n";
● PHP の実行の仕方を覚える
値<?
echo "hoge hoge\n";echo 1;echo true;echo null;
● echo の横に値を書くと echo によってその値が出力されることを理解する
● echo を使った出力だと分かりにくいので次のページへ
値<?
var_dump("hoge hoge\n");var_dump(1);var_dump(true);var_dump(null);
● echo の出力は null と false と “” の区別が出来なかったりする
● var_dump を使うと値の詳細を出力することが出来る
● 文字列、数値、真偽値、 null をマスターしよう
演算子<?
var_dump(1 + 1); # +演算子var_dump(1 . '2'); # .演算子var_dump(true and false); # and演算子
● 演算子は、両辺に値を取って別の値を生成する● + - / * % and or は良く使うので覚える● ポイント
● 「1」も値だけど「1 + 1」も「2」という値を生成する
● 値の生成は実行時に演算子が「評価」されることで行われる
● var_dump はそこにある値を出力するだけ
演算子<?
var_dump(1 + 1 * 3);
● 演算子には、優先順位があって、実行時に優先順位が高いほうから評価されて値が生成される● 1 * 3 が評価されて 3 が生成され● 1 + 3 が評価されて 4 が生成される
● () を使うと、優先順位の影響を受けない
変数<?
$hoge = "Hello world!\n";
var_dump($hoge);
● 変数は代入 (=) によって値を記憶し、実行時に「評価」されたときに記憶した値を生成する
変数 & 演算子<?
$hoge = 1 * 2;$fuga = 3 + $hoge;
var_dump($fuga);
● 1 * 2 の結果が評価され、 $hoge に記憶され● $hoge が評価され 2 を生成する● 3 + 2 が評価され 5 を生成する● 5 が $fuga に記憶され● $fuga が評価され 5 を生成する● var_dump が 5 を出力する
関数<?
function fn($a, $b) { # 処理の保存 $c = $a + $b; return $c * 4;}
var_dump(fn(1, 2)); # 関数の評価var_dump(fn(3, 4));
● 関数は処理を保存し、 return 文で値を「返す」
● 関数は () に値のリストを記述することで評価することができる
● 関数は評価されると return 文で返された値を生成する
演算子 & 関数<?
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));
● 演算子も関数も「値を使って、評価されると値を生成する」という意味で本質的には文法は違うが同じようなものである
組み込み関数<?
var_dump(file_get_contents('http://www.google.com/'));
● 基本的にプログラミング言語は、値を使って演算子や関数を評価して値を生成するという機能しかない
● それ以外の機能は、組み込み関数という形で提供される
● var_dump や file_get_contents が組み込み関数
式<?
var_dump('hoge'); # リテラル式var_dump(1 + 1); # 二項式var_dump(add(1, 1)); # 関数呼び出し式
● 式とは● 評価され値を生成するプログラム上の単位
● 値を使う場所には、常に式を置くことが可能(重要!!)
条件分岐<?
if (1 + 1) { var_dump('ok');}else { var_dump('ng');}
● if 文を使うと、式が生成する値を使って実行する処理を切り替えることが出来る● 式の値が '' や 0 や null や false 以外の場合は else
よりの前の処理を実行する● switch 文もある
繰り返し<?
$hoge = 10;
while ($hoge) { $hoge = $hoge - 1; var_dump($hoge);}
● while 文を使うと、 if 文と同様に式を評価して式の値が '' や 0 や null や false になるまで処理を繰り返し実行してくれる
データ構造<?
$arr = arary(1, 2, array(3, 3, 1 + 1 * 1));var_dump($arr[2][2]);
● 配列や連想配列を使うと、複数の値を階層的に持った値を作ることができる
● 配列も値であり、 array() も値であり配列リテラルという式である
オブジェクト<?
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 も式である