这个视频我们看一下在类里去设计一个用来设置属性值的设置器。
我们可以先把 Track 这个类里面的 track_name 这个属性设置成私有的属性 ... 这样在外部就不能直接设置或者获取到它的值了 ...
把 public 换成 private ...
private $track_name;
再下面,去创建一个 Track 对象 ... 试着去访问一下 track_name 这个属性 ...
$magic = new Track();
$magic->track_name = 'Magic';
回到浏览器 .. 提示不能访问 track_name 这个私有的属性 ...
回到 index.php ... 下面,我们可以去设置一个方法,通过这个方法去设置 track_name 这个属性的值 ... 这个方法必须是一个公开的方法,这样在类的外部,才能去调用它。我们可以叫它 set_track_name() ... 这个方法要支持一个参数 ... 可以叫它 $value ...
在这个方法里,要做的事就是把对象的 track_name 这个属性的值 ... 设置成调用 set_track_name 这个方法的时候传递的参数的值。这样如果想要设置 track_name 属性的值,就可以通过调用这个 set_track_name 方法去做。
public function set_track_name($value) {
$this->track_name = $value;
}
在这个方法里,你也可以根据需求去加些其它的东西,比如检查一下设置值的类型,过滤值的内容等等 ...
先注释掉这行代码:
$magic->track_name = 'Magic';
然后调用 magic 这个对象的 set_track_name 方法 ... 调用的时候,传递一个值 ... 这个值就是要给 track_name 属性设置的值。
$magic->set_track_name('Magic');
再把 $magic 这个对象使用 print_r 输出到屏幕上 ...
print_r($magic);
保存一下 ... 回到浏览器 ...
你会发现,现在 magic 这个对象的 tarck_name 属性的值就被设置成了 Magic 。