Php 属性v方法变量

Php 属性v方法变量,php,Php,新的PHP OOA,有两个相关问题: class foo { private $string = null; private $some_trivial_flag = false; 1)public function help_doing_some_stuff() { 2)*public function help_doing_some_stuff($some_trivial_flag)* { if(!$this->some_triv

新的PHP OOA,有两个相关问题:

class foo {
    private $string = null;
    private $some_trivial_flag = false;

    1)public function help_doing_some_stuff() {

    2)*public function help_doing_some_stuff($some_trivial_flag)* {

         if(!$this->some_trivial_flag(..) ...
    }

public function do_some_stuff() {
    1)  $this->help_doing_trivial_stuff(); 
    2)  *$this->help_doing_trivial_stuff$($this->some_trivial_flag);*    
    }
}

最好将类中使用的每个变量声明为属性,或者在类方法中保留一些声明的变量。 此外,如果已将其声明为属性,是否仍应在
方法参数列表?

将需要在成员函数调用之间保留其状态的变量声明为成员变量

就这样


选择哪些变量作为函数的参数是完全不相关的。

您好,感谢您的及时回复。第一点让你明白了,但我所说的参数部分实际上是-如果它是一个类属性,你还是应该在参数列表中列出它,增加函数的清晰度,或者让参数列表保持为-使用$this->thevar访问方法中的var。@jack:正如我所说,这两个属性是不相关的。函数参数与成员变量无关。您所说的是在函数中创建一个单独的局部变量,该变量与成员同名,只是为了清楚起见?那个变量会做什么?这是什么意思?太抽象了。对于某些方法调用,您实际上可能希望覆盖该标志吗?或者它是一个实际的对象状态?否则,您似乎正在编写一个实用程序类,在这种情况下,标志最好是始终且仅是一个参数。@mario-它是一个实用程序类,是转换器的解析器。
class foo {
   private $string = null;

   public function help_doing_some_stuff($some_trivial_flag) {
      if(!$this->some_trivial_flag(..) ...
   }

  public function do_some_stuff() {
     $some_trivial_flag = false;
     $this->help_doing_trivial_stuff($some_trivial_flag);
  }