クラスとオブジェクト

クラス定義
メソッド(メンバ関数)
プロパティ(メンバ変数)
PHP5以降でのアクセス制限

クラス定義

クラスは、クラス定義という大きな枠の中に書きます。

class Hoge {
  ………
  ………
}

クラスを使うには、インスタンスを作成しますが、これにはいくつか方法があります。単純な方法としてnew演算子を使う方法があります。

new演算子でクラスのオブジェクトを作成し、オブジェクト変数に格納します。
ちなみに、オブジェクトはクラスの実体ですが、クラスから見たオブジェクトの事をインスタンスといいます。

$c = new Hoge();

メソッド(メンバ関数)

クラスの中で使う関数を、メソッドといいます。

class Hoge {
  function foo(){
    ………
    ………
  }
}

メソッドを使うには、次のようにアロー演算子[ -> ]を使用します。

$c = new Hoge();
$c->foo();

関数と同じように使うことができます。

class Hoge {
  function foo($a){
    $a = $a + 1;
    return $a;
  }
}

$b = 1;

$c = new Hoge();
echo $c->foo($b);

出力

2

プロパティ(メンバ変数)

クラスの中で変数を使うこともできます。これをプロパティといいます。

class Hoge {
  var $bar;

  ………
  ………
}

$c = new Hoge();
echo $c->bar;

関数と同じようにアロー演算子[ -> ]を使用します。

class Hoge {
  var $bar;
}

$c = new Hoge();
$c->bar = 1;
echo $c->bar;

出力

1

初期値を設定することもできます。

class Hoge {
  var $bar = 1;
}

PHP5以降でのアクセス制限

PHP5以降では、変数やメッソッドに対してアクセス制限を使用できます。

指定範囲
public全てのクラスからアクセスできます
protected継承先クラスまたは、自クラスからアクセスできます
private自クラスからのみアクセスできます

PHP4以前で使用していた「var」も使用することはできますが、PHP5以降では「E_STRICTエラー」が発生します。
また、PHP5以降では「public」と同様の扱いとなります。

関連記事

スポンサーリンク

ImageMagick更新で『PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/imagick.so'』エラーが出る場合

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る