问题描述
看kissmvc代码的问题abstract class KISS_View { protected $file = ''; protected $vars = array(); function __construct($file='', $vars='') { if ($file) $this->file = $file; if (is_array($vars)) $this->vars = $vars; return $this; } function __set($key, $var) { return $this->set($key, $var); } function set($key, $var) { $this->vars[$key] = $var; return $this; } ...}我想问为什么__set()要调用set(),而不是把set()函数体的代码直接放入__set()中。http://kissmvc.com/http://code.google.com/p/kissmvc-php-mvc-framework/ 问题补充:ZavaKid 写道
解决方案
因为想在别的类中调用set函数。如果调用_set只能用$obj->key = $value这样的方法。所以这样做给了使用者更多的选择,可以用属性,也可以用方法,不是很好吗?
解决方案二:
都可以。只不过是代码只存在一处了。要不然set方法也直接写代码,那这份逻辑就存在两份了。