新潟アクセス修飾子/指定子のご提案
これからは新潟の時代だ!
導入方法
#ダウンロード #php 5.3.2 本体 wget http://jp2.php.net/distributions/php-5.3.2.tar.gz #新潟パッチ wget http://rtilabs.net/files/2010_05_20/niigata.patch #サンプルその1とその2 wget http://rtilabs.net/files/2010_05_20/niigata_test1.php.txt wget http://rtilabs.net/files/2010_05_20/niigata_test2.php.txt ##余談 ##diffはこうやって作った。 ##diff -crN php-5.3.2 php-5.3.2_niigata > niigata.patch ##パッチを当てる #パッチ当てるのがめんどくさい人にはパッチを当てたバージョンもあるよ! #http://rtilabs.net/files/2010_05_20/php-5.3.2.niigata.tar.gz # patch < niigata.patch #コンパイル cd php-5.3.2 ./configure make ##サンプルで遊ぶ #書き込み失敗のサンプル ./sapi/cli/php ../niigata_test1.php.txt #読み込めることを確認するサンプル ./sapi/cli/php ../niigata_test2.php.txt
新潟で何が変わるか?
読めるけど、書けない。
niigataアクセス修飾子はクラスの外から読むことはできるけど、書き込むことができないアクセス修飾子。
class Human{
niigata $Age;
public function
__construct($age,$name)
{
$this->Age = $age;
//略
}
};
//コレできても、
echo $HumanObject->Age;
//これはできない
$HumanObject->Age = 100;
// Fatal error: Cannot access niigata property Human::$Age in
// /home/rti/lab/php-5.3.2/a.php on line 13
無意味なgetter からの解放!!
//非新潟のコード
//無意味なgetterの連続
class Human{
private $Age,$Name,$Address,$Tel;
public function
__construct($age,$name)
{
$this->Age = $age;
//略
}
public function getAge(){
return $this->Age;
}
public function getName(){
return $this->Name;
}
public function getAddress(){
return $this->Address;
}
public function getTel(){
return $this->Tel;
}
};
↓新潟ライズ
//新潟なコード
class Human{
niigata $Age,$Name,$Address,$Tel; //これ
public function
__construct($age,$name)
{
$this->Age = $age;
//略
}
};