什么时候声明静态属性?

时间:2016-06-07 06:12:43

标签: php oop properties

我经常感到困惑,我是否更好地使用静态属性或仅使用公共属性 例如,我有一个类EventDispatcher,我希望有最大的侦听器和自动触发器配置 这个更好吗

<?php
class EventDispatcher
{
    public static $auto_trigger = 0;
    public static $max_listeners = 30;

或者这个

<?php
class EventDispatcher
{
    public $auto_trigger = 0;
    public $max_listeners = 30;

那么,哪一个更好?
我很困惑,因为这个属性是一个相当的配置&#39;财产而不仅仅是基本财产。

我常常在静态或非静态选择中感到困惑,虽然我知道静态类似于全局类,非常容易访问。但在实际情况中,仍然难以选择。

1 个答案:

答案 0 :(得分:2)

总的来说,这取决于你将要使用的属性,但我通常会避免使用静态的,因为你可以从任何地方调用它们而不需要创建对象的实例,我更喜欢一些封装, getter and setters等。

如果您知道该属性不会改变,我建议使用常量,您也可以在不创建对象实例的情况下访问该属性:

Map

否则我建议你保持你的属性是非静态的,这样它们就可以绑定到一个对象实例,你可以为它做一个getter和setter。