※このページの解説は、PHP 5を使用することを前提としています。それより前とはクラスの実装が大きく異なっているため、注意が必要です。
class MyClass { // プロパティ public $property = 'property'; // 定数 const CONSTANT = 'constant'; // ※定数の名前には「$」は付かない // メソッド function Method() { // メソッド内からの、プロパティへのアクセス echo $this->property; // メソッド内からの、定数へのアクセス echo self::CONSTANT; } }※C++と異なり、クラス定義を閉じるかっこの後にセミコロンは不要
// クラスインスタンスの作成
$myClass = new MyClass();
echo $myClass->property; // プロパティ echo $myClass->CONSTANT; // 定数 echo MyClass::CONSTANT; // 定数 $myClass->Method(); // メソッド※プロパティにアクセスするときは、名前の前の「$」は不要
たとえばメンバ名が「@」となっているとき、
$myClass->@;
とはできません。これは「@」がメンバ名に使用できない文字のためです。この場合はメンバ名を{}で囲み、
$myClass->{ '@' };
とします。
class MyClass() { // コンストラクタ function __construct() { } // デストラクタ function __destruct() { } }PHP: コンストラクタとデストラクタ - Manual
void __construct( [ mixed $args [ , $... ] ] )
new演算子によりインスタンスが生成されるときに呼び出されます。
void __destruct( void )
インスタンスへのすべての参照が削除された直後か、unset()関数などにより明示的にインスタンスが削除された直後に呼び出されます。
プロパティおよびメソッドについてアクセス権を設定できます。
アクセス属性 | 可視性制御の内容 |
---|---|
private | 不可視 (外部に非公開) |
protected | 派生クラスを除き不可視 |
public | 可視 (外部に公開) |
アクセス権を明示しなかった場合は、既定でpublicとなります。なお、インスタンスプロパティはアクセス権の指定を省略できません。
Class MyClass { // 静的プロパティ static $staticProperty = 'static property'; // 静的メソッド static function StaticMethod() { // 静的メソッド内からの、静的プロパティへのアクセス echo self::$staticProperty; } }
echo MyClass::$staticProperty; // 静的プロパティ echo MyClass::StaticMethod(); // 静的メソッド※静的プロパティにアクセスするときは、名前の前に「$」が必要