这可能是一个基本问题,但它让我想了很长一段时间.
我应该声明所有私有/本地变量是私有的吗?或者这只是“重要”变量的必要条件?
例如,我有(临时)计算结果.我应该预先声明这个变量吗?
希望有人可以指出这一点.
变量在使用前定义和初始化通常是一个很好的经验法则.这不仅包括定义和初始值,还包括输入值的验证和过滤,以便在对这些变量包含的数据进行具体处理之前建立一大块代码所基于的所有前置条件.
原文链接:https://www.f2er.com/php/137728.html同样自然地适用于对象成员(属性),因为它们是整个对象的变量.所以它们应该已经在类中定义(默认情况下它们的值在PHP中为NULL).动态值/过滤可以在构造函数和/或setter方法中完成.
可见性规则类似于代码中的任何规则:尽可能少(很难实现的简单规则).所以保持本地,然后私有 – 取决于它是函数变量还是对象属性.
或许可以记住,在PHP中,您可以从同一个类中访问私有属性 – 而不仅仅是同一个对象.这可能有用,因为它可以让你保持私密性更长一点.
For instance,I have the (temporary) result of a calculation. Should I pre-declare this variable?
这通常是函数或方法中的局部变量.它在接收计算方法的返回值时定义.所以没有必要预先声明它(本身).
... function hasCalculation() { $temp = $this->calculate(); return (bool) $temp; } ...
如果计算是昂贵的,那么存储(缓存)该值可能是有意义的.当你封装它时,例如在一个对象中,这很容易.在这种情况下,您将使用私有属性在计算后存储该值.