読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

PHPでオブジェクト指向入門~インターフェースを作ってみる~

PHP
<スポンサーリンク>

なんでインターフェースを作るの?

1つ目は、設計段階で定義したメソッドを付け忘れるのを防ぐことができる。
インターフェースをimplements(実装)するということは、そのインターフェースが定義したメソッドが実装されていることを保証するものだからだ。

2つ目は、同じインターフェースを持つクラスは、必ず同じような使い方ができるという点。
どんなパソコンも同じインターフェース(入り口)を持っているから、迷わずマウスやUSBを指すことができる。

スマホだって、種類は違っても、耳をつけるところと声を出す所がなんとなくわかるのは、電話のインターフェースを実装しているからだ。

たとえば、以下のように、

<?php
interface Animal {
    public function bow();
    public function walk();
}


class Dog implements Animal{
    var $calling;

    public function __construct($calling) {
        $this->calling = $calling;
        echo "construct!",PHP_EOL;
    }

    public function bow() {
        echo calling, PHP_EOL;
    }
}

$dog = new Dog("wan!");
$dog->bow();

インターフェースで定義されたwalkというメソッドを実装していない場合は、実行時に、

Fatal error: Class Dog contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Animal::walk) in /home/sho322/php/Dog.php on line 19

のようなエラーが出る。
逆に言うと、このようなエラーが出ることで、インターフェースに定義されたメソッドは実装が保証される。

覚えておいた方がいいと思ったメモ

・PHP5は参照渡し、PHP4はコピーで渡す
・PHP5はインターフェースを多重継承できる
・finalをつけたクラスは継承できなくなる

参考にした本

PHPによるWebアプリケーションスーパーサンプル活用編 第3版

PHPによるWebアプリケーションスーパーサンプル活用編 第3版

PHPの本は初心者向けの本が多くて、やたら文法の解説ばっかりだったり、簡単さを前面に押し出しすぎて陳腐なWebアプリを作らせるような書籍が多い。
そんな中、ちょっとプログラミングをわかってる人にとって、すごく勉強しがいのある本が見つかった。
それがこの本だ。
色んなサンプルが、「ちゃんとしたコード」で書かれているため、読んでいて安心して勉強できる(他は、「オブジェクト指向?なにそれ?」みたいな本が多い)