PHPオブジェクト指向の超キ・ホ・ン、クラスを理解しよう

PHPオブジェクト指向の超キ・ホ・ン、クラスを理解しよう

  • このエントリーをはてなブックマークに追加

えー…皆さん!はじめまして!今日は2016年2月4日です。…とタイムリープ能力を持っているわけではありませんが!生まれた頃から記憶力が良く、何かの事象をきっかけに過去の記憶を明確に思い起こせるカルチョスです。

個人でSNSのコミュニティーを利用して8年ほどブログは書き続けており、最近では技術的な内容も書いたりしてますが、社内ブログは書くのは始めてなのでうまく伝えられるかどうか…。
まあやってみるほかないので書いていきます!内容はオブジェクト指向についてです!

オブジェクト指向ってなんぞ?

具体例で説明していきます。
例えば、今あなたの目の前に見えているパソコンはまさに「オブジェクト」です。

ではあなたはそれをどう使いますか?
パソコンだったら、キーボードで文字を入力したり、画面でマウスポインタを動かしたり。
オブジェクトに対して何らかの操作を行う手続きのことを「メソッド」といいます。

オブジェクト メソッド

こうした何かのモノになぞらえた考え方をオブジェクト指向と呼んでいます。
では次にこのオブジェクト指向を使ったプログラムをPHPで作ってみましょう!

続きを読む

オブジェクト指向を使ってプログラミングしてみよう!

オブジェクト指向プログラミングはC++、C#、Javaなどでもできますが、初心者の方でも取っ付き易いPHPで説明します。あ…ちなみに弊社ではPHPを使うことが多いですね。

例. PCクラスを作り、入力されたキーを設定して取得する

1. クラスを作ってみる

クラスを作ってみる

<?php class PC{} ?>

クラスとはオブジェクトを作るための設計図になります。今回はPCがクラス名になります。

2. クラス内で変数を定義してみる

クラス内で変数を定義してみる

<?php
class PC{
  $inputKey // メンバ変数

}?>

クラスの中で定義された変数のことを「メンバ変数」と言います。
おや?何かが足りないような…。
プログラムわかる人ならすぐ気づくはず!安心して下さい!説明しますよ!!

3. アクセス修飾子を付けてみる

アクセス修飾子を付けてみる

<?php
class PC{
public $inputKey // メンバ変数

}?>

「2. クラス内で変数を定義してみる」で設定したメンバ変数の前に付けたpublicのことを「アクセス修飾子」と言います。
これが大変重要で一般的に以下の3つがあり、その時々の場合に応じて使い分けをします。

  • public…クラスの中、外、どこからでもメンバ変数にアクセス
  • protected…同じクラスもしくはその派生クラス内のメンバ変数にアクセス
  • private…同じクラス内のメンバ変数のみアクセス

4. 入力されたキーの設定と取得処理を書いてみる

<?php
class PC{
 public $inputKey;

  function setInputKey($inputKey){
      $this->inputKey = $inputKey;
   }

  function getInputKey(){
      return $this->inputKey;
  }
}?>

set〜とget〜の処理をそれぞれセッター、ゲッターと言い、合わせてアクセサーと呼びます。
UnrealEngine4でブループリントプログラムを組んでるときに変数の設定、取得と出てきて「あぁ〜!これかぁ〜…!」と納得したことがあります(笑)。

5. クラスの実体を生成し、値を設定してプログラムを実行してみる

クラスの実体を生成

<?php

$pc = new PC();

class PC{
 private $inputKey;

  function setInputKey($inputKey){
      $this->inputKey = $inputKey;
   }

  function getInputKey(){
      return $this->inputKey;
  }

}

$pc->setInputKey("ああああ");
echo $pc->getInputKey();

?>

初めにnew演算子を用いてクラスの実体を作ります。この実体のことを「インスタンス」と呼びます。インスタンスを生成したらsetInputKeyに値を入れて、getInputKey()で取得します。

オブジェクト指向の基本

以上になります。オブジェクト指向プログラミングを自由に扱えるようになるとプログラミングの幅がかなり広がります。大学時代に読んだ書籍にCの構造体を使って書かれたプログラムとC++のオブジェクト指向を使って書かれたプログラムが横並びで比較されているのを見た時は、C++のコードの美しさに大変感動したものです。(過去に見た光景を瞬時に現在に呼び戻しつつ語ってみる!)

参考サイト:PHPオブジェクト指向(前編) [Qiita],Objective-PHP.net

  • このエントリーをはてなブックマークに追加

記事作成者の紹介

カルチョス(システムエンジニア)

イラスト描いたり、音楽制作したり、ゲームエンジンいじったりとアーティストとしての一面も持っているエンジニアです。常に"目標"と"夢"を意識して日々過ごしております!希望創りし奇跡があらゆる戦いを凌駕する!!

関連するSONICMOOVのサービス

システムエンジニア募集中!

×

SNSでも情報配信中!ぜひご登録ください。

×

SNSでも
情報配信中!
SONICMOOV Facebookページ SONICMOOV Twitter
Wantedly 採用情報はこちら

新着の記事

mautic is open source marketing automation