www.shuwasystem.co.jp
Chapter04 モダンPHPの文法と基礎文法
- 要所要所のみ
- 環境
docker-compose up -d
で立ち上げ
docker-compose down
で解体
Section01 基本的な構文
docker-compose exec php php hello.php
Hello World.
docker-compose exec php php -a
Interactive shell
php > echo 'Hello World.';
Hello World.
php >
変数の宣言
Section02 型と演算
文字列の操作
比較の演算
a <=> b
(宇宙船演算子, PHP7.0~)
a < b
なら-1
a === b
なら0
a > b
なら+1
- 乱暴だけど
(a - b)
の符号だけ取った感じ
- usortなどで使う
Section04 繰り返し処理
Section05 関数
Section06 PHP7の新機能
型宣言
関数の引数型宣言
- 引数型宣言はPHP5から一部ある(type hinting)
- PHP7.0
- PHP7.1
戻り値の型宣言
- PHP7.0完全新規
- PHP7.1
- nullable
function hoge(): ?string
とか書ける
厳密な型チェック(strictモード)
- 真っ先に
declare(strict_types=1)
<?php
declare(strict_types=1);
- UTF-8ではBOMがついていると下記エラーが出るので注意
PHP Fatal error: strict_types declaration must be the very first statement in the script
- デフォルト無効
- 有効にすると、関数の引数・戻り値の型不一致でTypeErrorが発生してくれる
- 仮引数と実引数の不一致 ... 呼び出し側でエラー
- 戻り値型宣言と実際の戻り値の不一致 ... 実行時エラー
パラメータの型の拡大変換・抽象メソッドのオーバーライド
- 参考:
- 契約プログラミング
- 事前条件は、継承元と同等かより弱いもの(or-ed)に置き換えられる。
- 事後条件は、継承元と同等かより強いもの(and-ed)に置き換えられる。
- リスコフの置換原則
- 引数:事前条件
- override時はより弱い縛りにできる
- 引数を広げるのはOK
- 戻り値:事後条件
- override時はより強い縛りにできる
- 戻り値を狭めるのはOK