我最近一直在使用其他人的代码,我意识到这个人在私有变量和方法参数方面的理念与我非常不同。我通常认为私有变量应该只在以下情况下使用:
- 该变量需要存储以供以后调用。
- 存储在变量中的数据在类中全局使用。
- 当需要全局操作变量时(与每个类方法读取变量的需要明显不同)。
- 什么时候它将使编程变得更加容易。(诚然含糊不清,但在许多情况下必须避免将自己逼入角落)。
(我承认,上述许多内容略有重复,但它们似乎都不同,足以值得这样处理......)
这似乎是防止意外更改变量的最有效方法。似乎遵循这些标准将允许最终操作外部引用(如果最终修改了类),从而为您在未来留下更多选择。这仅仅是一个风格问题(比如一个真正的括号或匈牙利命名约定),还是我有理由相信这种信念?在这种情况下实际上有最佳实践吗?
编辑
我认为这需要纠正。我在上面的实际意思中使用了“全局”,“通过实例方法全局”而不是“任何地方、任何地方都可以全局访问”。
edit2
要求提供一个示例:
class foo
{
private $_my_private_variable;
public function __constructor__()
{
}
public function useFoo( $variable )
{
// This is the line I am wondering about,
// there does not seem to be a need for storing it.
$this->_my_private_variable = $variable;
$this->_doSometing();
}
private function _doSomething()
{
/*
do something with $this->_my_private_variable.
*/
// This is the only place _my_private_variable is used.
echo $this->_my_private_variable;
}
}
这就是我会这样做的方式:
class foo
{
public function __constructor__()
{
}
public function useFoo( $variable )
{
$this->_doSometing( $variable );
}
private function _doSomething( $passed_variable )
{
/*
do something with the parameter.
*/
echo $passed_variable;
}
}