使用单一方法设置/获取值而不是两个?

Ale*_*lex 1 php coding-style class getter-setter

用一个处理两者的方法替换getter和/或setter方法是个好主意吗?

例如:

    function name($what = null){

      if(!$what)
        return $this->name;

      $this->name = $what;
    }
Run Code Online (Sandbox Code Playgroud)

使用如下:

    // get name
    print $obj->name();

    // set name
    $obj->name('bla');
Run Code Online (Sandbox Code Playgroud)

我见过一些框架做到了.它被社区认为是好的还是坏的做法?:P

它似乎更有效,但它看起来有点混乱,因为我习惯于在PHP中使用getThing()和setThing().这种风格让我想起了jQuery.

Jas*_*ary 7

用一个处理两者的方法替换getter和/或setter方法是个好主意吗?

没有.

也许是针对一个非常具体的用例.但不是.如果需要分配null,请在您自己的代码中考虑$name.你的代码不允许这样做.

至于有效的性能,我不知道怎么样.最后,您仍然可以进行一次方法调用.要么设置获取.

如果你的意思是效率更低,就像你自己的意思一样,你牺牲了可读性.哪个效率更低.特别是随着时间