首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从存储在变量中的类访问静态变量

从存储在变量中的类访问静态变量
EN

Stack Overflow用户
提问于 2016-06-23 12:30:21
回答 3查看 695关注 0票数 1

给一堂课:

代码语言:javascript
运行
复制
class SomeClass{
     static $information = 'useful information';
}

我试图访问一组php类中的静态变量.每个类都有$information静态变量。如果我直接访问静态变量

代码语言:javascript
运行
复制
echo SomeClass::$information;

程序输出信息,但是如果我试图访问它,将它存储在一个变量中,则会得到一个错误,即'::‘是意外的。

代码语言:javascript
运行
复制
$class = SomeClass;
echo $class::$information;

将类存储在变量中的原因是,我可以有一个函数,它可以创建用户数组或项目数组。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-23 12:43:20

代码语言:javascript
运行
复制
class SomeClass {
  public static $information = 'useful information';

  public static function getInformation() {
    return self::$information;
  }
} 

然后,您可以执行以下操作:

代码语言:javascript
运行
复制
# Static Access
echo SomeClass::$information;
echo SomeClass::getInformation();

# Static Access via Class Name in Variable
$someClass = 'SomeClass';
echo $someClass::$information;

## Instantiated access
$someClass = new SomeClass();
echo $someClass->$information;
echo $someClass->getInformation();
票数 1
EN

Stack Overflow用户

发布于 2016-06-23 12:37:45

你可以这样做:

代码语言:javascript
运行
复制
$class = SomeClass::class;
echo $class::$information;

::class以字符串的形式获取类的完全限定名。

票数 1
EN

Stack Overflow用户

发布于 2016-06-23 12:36:31

不能将对类的引用存储在变量中,它是无用的。

相反,您可以将类名存储在变量中,并调用静态方法或变量:

代码语言:javascript
运行
复制
$class = 'SomeClass';
echo $class::$information;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37991677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档