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