SlideShare a Scribd company logo
PHPのインタフェースのお話
     2013.02.19
      片桐広和
自己紹介

•   片桐広和@株式会社メディアライン
•   プログラマ的な何か
•   バイクはリリンの生み出した(略
今回のお話の内訳

1.今回のお話のきっかけ
2.そもそもインタフェースて何?
3.どう使うの?
4.役に立つの?
5.どう使ったらハッピーになれるか
6.まとめと反省
1.今回のお話のきっかけ

PHPにはインタフェースがあるよという話をfacebookでしたら
なにそれこわい なにそれどんなの?
という話になったので、以前使ったのを思い出しつつ交流会前にちょこっと書
いてみようと思い立ちました。
2.そもそもインタフェースて何?

大まかには「クラスに対して実装されるべきメソッドを指定するもの」。
継承(extends)と違って「implements」で指定するのと、複数指定できるのが
特徴。
あと中身のあるメソッドの定義はできない。
詳しくは
http://php.net/manual/ja/language.oop5.interfaces.php
3.どう使うの?
4.役に立つの?
指定のクラスにメソッドの実装を強要できるので、

「こういうメソッドは必ず実装してね。でも実装内容はクラスによって違うよ」

というような時に便利。
継承との違いは

「継承は親のメソッドを引き継ぎ、使うことが出来る。上書きもできる」
「インタフェースはメソッドの実装を強要する」

こと。
5.どう使ったらハッピーになれるのか?

インタフェースは「コード内で明示的に実装を必須化」するもの。
PHP5だと「タイプヒンティング」もあるので、これと組み合わせるとかなり厳密
な型定義が可能になります。
結果、実装漏れや想定外の引数を渡されるなどといったことを防げるので、
ハッピーになれると思われます。
例)
ジョセフが使うスタンドは常にハーミットパープル型で、とか定義できる




ジョセフが使えないスタンド型の引数を指定した時点でエラーになるので
「ジョセフがスタープラチナの技を使うかも」とか、そういう心配をしなくて済む。




「このメソッドは必ず存在して、引数はこの型じゃないと動かない」と保証され
る。期待のものが来ているのか心配で引数をvar_dump()で確認とかしなくて
もOK。かなりハッピー。
6.まとめと反省

・インタフェースは継承と違って「如何に縛るか」という仕組み
・複数指定もできる
・タイプヒンティングと合わせて使うといいかも
・もっと色々勉強しないといかん(‘A`)
おしまい

More Related Content

PDF
リファクタリング勉強会 第2回
PPTX
レポートの書き方,クリティカルシンキング
PPTX
初心者が Python で戸惑ったところ
PDF
S10 t1 spc_by_nowfromnow
PDF
本気でPythonで宛名書きした話
PDF
6/9 学生LT用資料
PDF
アラフォーでプログラミングをはじめて思ったこと
PDF
S06 t1 python学習奮闘記#4
リファクタリング勉強会 第2回
レポートの書き方,クリティカルシンキング
初心者が Python で戸惑ったところ
S10 t1 spc_by_nowfromnow
本気でPythonで宛名書きした話
6/9 学生LT用資料
アラフォーでプログラミングをはじめて思ったこと
S06 t1 python学習奮闘記#4

What's hot (20)

PDF
私とUnityとLINQと
PDF
「長野で語るStapyのビジョン」
PDF
英語オーラル系授業の教室外活動での PoodLLの利用
PDF
NPCA-LT 冒頭挨拶[OSC Kyoto 2014]
PDF
S12 t1 python学習奮闘記#5
PPTX
191208 python-kansai-nishimoto
PDF
正しいプログラミング言語の覚え方
PDF
20111206 GLT vol.40
ODP
紹介 絵本レコメ 2014年02月_rev01
PDF
「LINQ」っていう名前だけでも 覚えて帰ってください!
PDF
そうだ!勉強会に参加しよう!
PPT
20150309 iscover challange_twitter_bot
PDF
S02 t0 get_started
PPTX
Python勉強会in 長野 オープニング
PPTX
UDトークアプリ新たな機能
PDF
S10 t0 orientation
PDF
ロボアプリ名:秘密のPepperちゃん
PDF
微博(ウェイボ)型社内SNSとモバイルで始める社内の可視化
PDF
コンピュータに「最長しりとり」「最短距離でのJR線全線乗り尽くし」を解いてもらった方法
PPTX
オリエンテーション
私とUnityとLINQと
「長野で語るStapyのビジョン」
英語オーラル系授業の教室外活動での PoodLLの利用
NPCA-LT 冒頭挨拶[OSC Kyoto 2014]
S12 t1 python学習奮闘記#5
191208 python-kansai-nishimoto
正しいプログラミング言語の覚え方
20111206 GLT vol.40
紹介 絵本レコメ 2014年02月_rev01
「LINQ」っていう名前だけでも 覚えて帰ってください!
そうだ!勉強会に参加しよう!
20150309 iscover challange_twitter_bot
S02 t0 get_started
Python勉強会in 長野 オープニング
UDトークアプリ新たな機能
S10 t0 orientation
ロボアプリ名:秘密のPepperちゃん
微博(ウェイボ)型社内SNSとモバイルで始める社内の可視化
コンピュータに「最長しりとり」「最短距離でのJR線全線乗り尽くし」を解いてもらった方法
オリエンテーション
Ad

Similar to Phpインタフェースについて (15)

PPTX
Phpのinterfaceを使う
PDF
Modern PHP Programming @ PFI Seminar
PPTX
PHP基礎勉強会
PDF
PHPにおけるI/O多重化とyield
PDF
PHPの今とこれから 2013
PDF
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
PPTX
PHPCON_TOKYO_2022_Bigginer.pptx
PDF
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PPTX
インターフェイスによるオブジェクト指向設計
PDF
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PDF
Good Parts of PHP and the UNIX Philosophy
PDF
インタフェースの実装パターン
PDF
PHPの今とこれから2019
PDF
PHPの今とこれから2017
PDF
インタフェース完全に理解した
Phpのinterfaceを使う
Modern PHP Programming @ PFI Seminar
PHP基礎勉強会
PHPにおけるI/O多重化とyield
PHPの今とこれから 2013
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
PHPCON_TOKYO_2022_Bigginer.pptx
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
インターフェイスによるオブジェクト指向設計
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
Good Parts of PHP and the UNIX Philosophy
インタフェースの実装パターン
PHPの今とこれから2019
PHPの今とこれから2017
インタフェース完全に理解した
Ad

Phpインタフェースについて