PHP5でprivateとpublicを使う(変数編)
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2008-06-22
この「サラトガ牧場」を運営しているサーバが 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;
}
?>
関連記事
上記の記事に関連する記事(最新の10件)です。


