我在我重新格式化类(如下图所示)的过程 - 我认为我做了我的类相同的可见性设置一切的错误,而性能确实应该是私有的和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超载

看一看: http://php.net/overload

有两大神奇的方法__get()__set()这可能会做的正是你想要的东西。

PHP对象有一些很好魔术方法(尽管我不使用所有的人,因为它可能会造成混淆)。你可能会寻找一个是 __get() __set()。你还是将不得不重构所有的代码,如果你选择,让您的数据字段的私人(你应该让你没有你的其他代码访问字段不正确。这样做,这样可以让你的代码变得更好,更容易维护。

虽然,我通常会尽量为每个私有数据域getter和setter,因为你可以很容易地看到每个领域的任何验证。加上我更多的是Java开发人员比PHP开发人员的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top