我经常感到困惑,我是否更好地使用静态属性或仅使用公共属性
例如,我有一个类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;财产而不仅仅是基本财产。
我常常在静态或非静态选择中感到困惑,虽然我知道静态类似于全局类,非常容易访问。但在实际情况中,仍然难以选择。
答案 0 :(得分:2)
总的来说,这取决于你将要使用的属性,但我通常会避免使用静态的,因为你可以从任何地方调用它们而不需要创建对象的实例,我更喜欢一些封装, getter and setters等。
如果您知道该属性不会改变,我建议使用常量,您也可以在不创建对象实例的情况下访问该属性:
Map
否则我建议你保持你的属性是非静态的,这样它们就可以绑定到一个对象实例,你可以为它做一个getter和setter。