【问题标题】:Access variable in class类中的访问变量
【发布时间】:2011-08-28 20:45:59
【问题描述】:

我想访问一个类中的变量(而不是类的实例) 例如

class myclas
{
private $list=array('1','2','3');
[...]
}

我需要以这种方式访问​​ $list 的值:myclass::$list (witch is'n possible)。 有其他方法吗?

谢谢。

//编辑:谢谢大家的回答!是否可以将私有变量用作公共变量的值?

class myclas
 {
   private $_list=array('1','2','3');
   public static $staticList=$_list;
  [...]
    }

现在,我收到一个错误“意外的 T_VARIABLE”

【问题讨论】:

  • 不是创建一个从私有变量中读取的公共变量,而是创建一个从私有变量中读取的公共 statc 函数。然后调用函数:myclass::myfunction()

标签: php arrays class variables


【解决方案1】:

【讨论】:

    【解决方案2】:
    class myclas
    {
    public static $list=array('1','2','3');
    }
    myClass::$list;
    

    【讨论】:

    • 如果您想限制对变量的访问,请将其设为私有并创建静态方法,如 public static getList() { return self::$list; }
    【解决方案3】:

    需要声明为static

    例子:

    class MyClass {
    
        public static $var = 'foo';
    }
    

    然后访问:MyClass::$var;

    【讨论】:

      【解决方案4】:

      这是一个私有变量。如果您将其设为公共静态变量,您应该可以访问它:

      class myclas {
       public static $list = array('1','2','3');
      }
      
      myclas::$list;
      

      【讨论】:

      • 如果你想保持你的变量私有,你可以编写一个公共静态函数来提取值并返回它们。这可能会做你想做的事。
      【解决方案5】:

      对于您的编辑,请参阅其他关于类和可见性的美丽指南:

      http://www.php.net/manual/en/language.oop5.visibility.php

      【讨论】:

      • 感谢您提供的所有精美链接。这个,我还是知道的。但我无法将本指南投射到我的问题上......所以我很高兴在这里找到一些帮助。
      猜你喜欢
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      相关资源
      最近更新 更多