早速ですが、前回の続きになります。
前回は「アクセッサ」をtraitで書いてみましたが。
次は「プロパティを直接操作する時の、typoな時をがっちりとガードできる」traitを書いてみましょう。
「vol.65 ‐ 『マジックメソッドを巡る旅 その14』」で書かせていただいた内容、の、trait版になります。
// エラー出力制御
ini_set('display_errors', 'on');
error_reporting(E_ALL);
// 汎用的なtrait
trait access_block_of_improper_variable {
public function __set($name, $val) {
throw new Exception("property[{$name}] not exist!");
}
}
//
class hoge {
//
use access_block_of_improper_variable;
//
public $data_;
}
//
try {
$obj = new hoge();
$obj->date_ = 'hoge data';
var_dump($obj);
} catch (Exception $e) {
echo $e->getMessage() , "\n";
}
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。