Php 对类成员进行操作,而不是将参数传递给方法

Php 对类成员进行操作,而不是将参数传递给方法,php,function,oop,methods,Php,Function,Oop,Methods,这是我一直试图找到一个好的约定的东西,但是在某些特定的情况下,我是否希望将变量传递给方法,而不是直接对类成员进行操作,或者反之亦然?例如,假设我有一个简单的类,它只计算某物的总价格(请原谅这个超级蹩脚的例子): 我知道这不是一个真实的例子,但在本例中,主要关注的是callCalculate()方法。您通常是这样做的,将参数传递给calculate()方法,还是依赖于此?或者这是一个我实际上不需要类成员的情况 我发现自己有时会回溯,因为我觉得自己遗漏了一些东西,比如如果我传入参数,我可能会重用功能

这是我一直试图找到一个好的约定的东西,但是在某些特定的情况下,我是否希望将变量传递给方法,而不是直接对类成员进行操作,或者反之亦然?例如,假设我有一个简单的类,它只计算某物的总价格(请原谅这个超级蹩脚的例子):

我知道这不是一个真实的例子,但在本例中,主要关注的是
callCalculate()
方法。您通常是这样做的,将参数传递给
calculate()
方法,还是依赖于此?或者这是一个我实际上不需要类成员的情况

我发现自己有时会回溯,因为我觉得自己遗漏了一些东西,比如如果我传入参数,我可能会重用功能


任何反馈都很好。提前谢谢。

这个问题有一些很好的答案,尽管得票最多的答案不是我最喜欢的

callCalculate()
方法除了调用另一个方法外什么都不做,因此最好只使用一个方法来完成所有计算。另外,让类成员
私有
并使用getter和setter方法访问它们也是一种很好的做法。实际上,我不会使用
callCalculate()
方法。这被简化了,更像是一个一般性的问题。但在某些情况下,我的类可以做更多的工作,比如生成字符串等等。所以我将把责任分解成不同的方法。因此,沿着这些思路,我想知道是应该将生成/计算的值存储为类成员,还是只使用局部变量并传递它们。如果您计划在类之外使用这些计算值,那么最好使用类成员来保存结果,否则,使用局部变量来存储任何中间结果,而您不打算在类之外使用或操作这些结果。如果您的计算值需要在多个类方法之间共享,那么您应该使用类成员变量来保存该计算值。这两种情况都是绿色的。这有点像“如何规划一个好的库”或“如何创建一个伟大的概念”的问题。我甚至将一个值存储到一个方法中的变量中,这个方法当然不会被任何人使用。以防万一,我不想永远改变它的价值。此外,我经常将参数中的值存储到属性中,以防我想在其他方法中使用它。这就像,我下一步将如何处理这个值。对不起,如果我没有收到你的问题。谢谢你的链接。我已经读过了,我想我不是唯一一个对此感到疑惑的人。
class TaxCalculator
{
    protected $tax_rate = 0.07;
    protected $price = 10;

    public function callCalculate()
    {
        $this->calculate();
    }

    public function calculate()
    {
        return $this->price * ( 1 + $this->tax_rate );
    }
}