You are currently viewing 【PHP】クラスの定義「メンバー変数とメンバーメソッド」について【入門】

【PHP】クラスの定義「メンバー変数とメンバーメソッド」について【入門】


PHPの全目次

クラスの定義の目次

メンバー変数とメンバーメソッド

ではクラスの中身を設計していきます。クラスには値を保存するためのメンバー変数と、クラスで行う処理を記述するメンバーメソッドがあります。

メンバ変数はクラス内で値を保持するために使います。例えばテレビを表すクラスを設計した場合、現在表示しているテレビチャンネルを記憶しておくためなどです。メンバー変数の記述の仕方は下記の通りです。

class クラス名{    public メンバー変数名;}

メンバー変数名の前に付いているのはアクセス修飾子というもので3つ種類があるのですが取りあえず”public”としておいて下さい。

例としてテレビのクラスを設計し、現在のチャンネルを記憶するためのメンバー変数を1つ定義すると下記のようになります。

class Television{  public $channelNo;}

次にメンバーメソッドは、設計したクラスで何を行いたいかをメソッドの形で記述します。例えばテレビのクラスの場合であれば、チャンネルを変えるとかに相当します。メンバーメソッドの記述方法は下記の通りです。

class クラス名{  public メンバー変数名;

  function メンバーメソッド名(){    // クラスの中で行う処理  }}

例としてテレビのクラスの中で現在のチャンネルを表示するメソッドを定義してみます。

class Television{  public $channelNo;
  function dispChannel(){    print(‘現在のチャンネルは’.$this->channelNo);  }}

取りあえず簡単なクラスとしてはこのような感じになります。

クラスの設計が終わったので実際に使ってみましょう。まずは”Television”クラスのオブジェクトを作成します。

$tv = new Television();
class Television{  public $channelNo;
  function dispChannel(){    print(‘現在のチャンネルは’.$this->channelNo);  }}

次にチャンネルに番号をセットしてみましょう。クラスから作成したオブジェクトを使って、メンバー変数にアクセスするためには下記のように行います。

$オブジェクト名->メンバー変数名;

先ほどの例の場合で試してみるには下記のようになります。

$tv = new Television();$tv->channelNo = 8;
class Television{  public $channelNo;
  function dispChannel(){    print(‘現在のチャンネルは’.$this->channelNo);  }}

なお、クラス内でメンバー変数にアクセスするには”this”を使って下記のように記述します。

$this->メンバー変数名;

次に現在のチャンネルを表示させてみます。クラスから作成したオブジェクトを使って、メンバーメソッドにアクセスするためには下記のように行います。

$オブジェクト名->メンバーメソッド名();

先ほどの例の場合で試してみるには下記のようになります。

$tv = new Television();$tv->channelNo = 8;$tv->dispChannel();
class Television(){  public $channelNo;
  function dispChannel(){    print(‘現在のチャンネルは’.$this->channelNo);  }}

サンプルコード

▼Example-class1-1.php

<!DOCTYPE html><html lang=”ja”><head><title>PHP TEST</title></head><body>
<?php
$tv = new Television();$tv->channelNo = 8;$tv->dispChannel();
class Television{  public $channelNo;
  function dispChannel(){    print(‘現在のチャンネルは’.$this->channelNo);  }}
?></body></html>

上記のファイルをwwwサーバーのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。



コメントを残す