373diary

好きなモノを褒める練習をするつもりです。

「ドットインストール PHP入門」をざっくり一周した

メモ。

他言語と共通している、既に理解している部分は省略

学んだこと

1 PHPを使ってみよう

PHPとは、webアプリケーションを作るためのプログラミング言語

2 はじめてのPHPプログラム

PHPはHTMLに直接埋め込んで書くことができる
<?php ?>と書くと、phpを埋め込める
文字列出力はecho "hoge"
文の区切りはセミコロン

3 ビルトインWebサーバーを使ってみよう

php -S IPアドレス ポート番号 でビルトインwebサーバーが立ち上がる
エラーが発生した場合、コンソールがエラーを吐いているので確認(ビルトインwebサーバーの場合)

4 変数とデータ型について理解しよう

変数定義 $hoge = "hoge"
使うときもそのままecho $hoge
var_dump()で型と値を確認できる

5 定数を使ってみよう

定数定義 define(HOGE_FUGA, "abc")
定数名は大文字スネークケースで
変数と違って$をつけない

自動的に定義される定数

__LINE__  // 行数
__FILE__  // ファイル名
__DIR__   // ディレクトリ

6 数値の演算をしてみよう

PHP5.6以降は**演算子でべき乗

7 文字列を扱ってみよう

""(ダブルクォート) : 特殊文字(\n, \t) 変数が展開される
''(シングルクォート): 展開されない
変数展開の際は、{$name}${name}という形で変数であることを明示できる
文字列連結の基本はドット"hello" . "world"

8 if文で条件分岐をしてみよう

  • elseifはスペースなし(else ifではない)
  • ===で型も含めた比較

9 真偽値について理解しよう

falseになる場合

  • 文字列: 空、"0"
  • 数値: 0, 0.0
  • 配列: 要素の数が0
  • null

10 switch文で条件分岐をしてみよう

11 while文でループ処理をしてみよう

12 for文でループ処理をしてみよう

13 配列を使ってみよう

# 連想配列
$sales = array(
  "taguchi" => 200,
  "fkoji" => 800,
  "dotinstall" => 600,
)

// PHP5.4
$sales = [
  "taguchi" => 200,
  "fkoji" => 800,
  "dotinstall" => 600,
];

# 配列
$colors = ["red", "yellow", "green"]
var_dump($colors[1]); // -> red

14 foreachを使ってみよう

# keyとvalueを取り出す
foreach ($sales as $key => $value) {
  echo "($key) $value";
}

# valueだけ
foreach ($colos as $value) {
  echo "$value";
}

# endforeachを使う
foreach ($colors as $value) :
  echo "$value";
endforeach; //HTMLに埋め込むときにスッキリする書き方

15 関数を使ってみよう

返り値と引数に型宣言が必要ない

16 ローカル変数を理解しよう

17 便利な組み込み関数を使ってみよう

strlen();     // 文字数
mb_strlen();  // マルチバイト文字数
printf()      // 指定したフォーマットで表示

count()       // 配列の要素の数
implode()     // 指定した文字で配列を結合して表示

18 クラスとインスタンスを理解しよう

フィールドへのアクセス

$hoge->name(変数)、$hoge->fuga()(メソッド)

19 クラスを作ってみよう

コンストラクタ

__construct()というメソッドで定義

20 クラスを継承してみよう

21 アクセス権について理解しよう

22 staticキーワードを使ってみよう

staticな変数・メソッドへのアクセス

クラス名::変数・メソッド名

23 抽象クラスを使ってみよう

24 インターフェースを使ってみよう

25 外部ファイルを読み込んでみよう

読み込みの方法

# require → 読み込みに失敗したらエラー
require   

# include → 読み込みに失敗しても処理続行
include       

# ~_once → そのファイルが読み込まれているかをチェックして、読み込まれていた場合スキップ
require_once 
include_once 

# autoload → クラスが未定義だった場合に、自動的に読み込む
autoload

26 名前空間を使ってみよう

名前空間の接続はバックスラッシュで行う
名前空間に別名をつけることができる

27 例外処理をしてみよう

28 フォームからのデータを処理しよう

# 定義済みの変数
$_SERVER['REQUEST_METHOD']  // リクエストメソッドが何か
$_POST['(フォームの属性)']   // フォームからpostされてきた内容が入っている

29 Cookieを使ってみよう

# 定義済みの変数
$_COOKIE['(key)']   // setcookieで設定したvalueを引っ張ってくる

30 セッションを使ってみよう

$_SESSION['(key)']  // sessionに設定したvalueを引っ張ってくる

感じたこと

  • 文字列連結がドットなせいで、フィールドへのアクセスが面倒だなと感じた
  • 変数にいちいち$をつけるのも若干面倒だなと感じてしまった
  • HTMLとの組み合わせで、見た目上スッキリとforeachなどが表現できるのは良い
  • 型推論なのはいいけど、関数の返り値と引数に型宣言がないのは少し不安
  • 想像していたよりは、自分が身に付けた他言語の知識が使い回せて、そこは安心した