塞特斯/吸气剂,可见性[OOP]在PHP
-
18-09-2019 - |
题
我在我重新格式化类(如下图所示)的过程 - 我认为我做了我的类相同的可见性设置一切的错误,而性能确实应该是私有的和getter / setter方法应该是公众最例。
要抢财产我只是做$路径 - > PROPERTYNAME但我发现它更实际拥有制定者/吸气。如果我要实现干将,我应该做一个为每个属性或者我可以做一个整个类?因此,例如说我想要得到的控制器名称...
public function getController( ) {
return $this->controller;
}
这将返回控制器的私有财产?它是常见的有得到的和的设置对我来说是更通用的getter / setter,甚至是混合方法?
下面是类结构(只是属性/方法):
class urlParser {
public static $url = '';
public static $controller = '';
public static $baseController = '';
public static $urls = '';
public static $template = '';
public static $captures = '';
public static $contentXML = '';
function __construct( $urls ) {
$this->urls = $urls;
$this->baseController = $urls['default'];
$this->get_url();
}
public function get_url() {
// sets following properties:
// url, template, controller, contentXML, baseController
}
}
解决方案
具有你setter和getter情况毫无意义的。
在情况下,你做任何事情,除了返回控制器,你不需要吸气剂不需要制定者,如果你已经设置完成后不要用财产做任何事情。
如果你真的想getter和setter,可以使用__get和__set魔术方法为您的所有特性。但是,这是完全没有意义的,如果情况是如我如上所述。
其他提示
在PHP超载
有两大神奇的方法__get()
和__set()
这可能会做的正是你想要的东西。
不隶属于 StackOverflow