【发布时间】:2013-10-10 18:09:36
【问题描述】:
希望这是一个直截了当的问题:
我正在寻找创建一个类,并且我想在其中包含我的数据库变量 ($mysql),以便我可以进行数据库交互。到目前为止,我一直在将其设为全局内部函数,但我希望不是在每个类函数中全局包含变量,而是有一些方法可以简单地将它包含到类中/在类中访问它。我不太擅长范围界定。
我能想到的唯一选择是创建一个类变量并在构造函数中全局包含该变量并将其分配(可能通过引用,这有意义吗?)给类变量。
还有其他选择吗?
【问题讨论】:
-
创建一个类属性来保存数据库对象,在构造函数中传递,是一种常见且很好的解决方案,比全局调用要好得多。对象在 PHP 中默认通过引用分配。
-
谢谢迈克尔,我怀疑这可能是答案。被给予,将其设为私人罚款吗?或者这更适合作为静态对象?
-
私有很好,如果您在类中有其他静态方法需要访问实例上下文之外的数据库,则可能需要
private static。但在这种情况下,您还没有调用构造函数,因此您需要某种init()方法来设置静态属性。不过,如果您只打算在实例上下文中使用它,请不要担心。 -
这是有道理的。是的,它仅在实例的上下文中;我已经有了 DB 对象,我只需要使用它。