新潟アクセス修飾子/指定子のご提案
これからは新潟の時代だ!
導入方法
#ダウンロード #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; //略 } };