PHP5でprivateとpublicを使う(変数編)

PHP5でprivateとpublicを使う(変数編)

PHPPHP5でprivateとpublicを使う(変数編)

この「サラトガ牧場」を運営しているサーバが PHP5 に対応しているので、せっかくなので新しい機能を使ってみます。PHP4 までは、クラス内の変数や関数にスコープの区別がなくて、すべて public として扱われていましたが、PHP5 からスコープが宣言できるようになりました。

スコープというと、スクリプト内のローカル変数のスコープとも絡んでくるので、ここではアクセス制限とかアクセス修飾子って補足しておいた方がいいのかな。例えば、クラス(class)全体で使用するフィールド変数を宣言するときは、PHP4 までは予約語の var を使って宣言してました。

(クラスの一部)

<?php

class Saratoga {

    var $id;
    var $name;

    // コンストラクタ
    function($id, $name) {
        $this->id = $id;
        $this->name = $name;
    }

?>

PHP5 からは private, public, protected のスコープが使えます。

- private はそのクラスからのみ参照可能
- public はそのクラス以外からも参照可能
- protected はそのクラスと継承関係にあるクラスからのみ参照可能

先ほどの Saratoga クラスの変数を private で宣言して、外部からも参照できるようにしてみます。

(クラスの一部)

<?php

class Saratoga {

    private $id;
    private $name;

    // コンストラクタ
    function Saratoga($id, $name) {
        $this->id = $id;
        $this->name = $name;
    }

    // 外部から参照
    function getId($id) {
        return $this->$id;
    }

    // 外部から参照
    function getName($name) {
        return $this->$name;
    }
?>

最終更新日:

関連記事

人気記事

新着情報