PHP:如何在类中创建动态变量

标签 php class variables dynamic

好吧,我认为这可能是非常基本的,但它仍然让我感到困惑。在回答我的问题之前,让我通过这个工作示例来演示我的问题所基于的概念:

<?php

$a = 'Stack';
$b = $a.' Overflow';
echo $b; // Result: "Stack Overflow"

?>

在上面的示例中,$b 被定义为 $a'Overflow' 的组合。 现在,假设我想做与上面相同的事情,除了我不想使用全局变量。我想使用类。这就是我尝试实现这一目标的方法:

<?php

class ClassName {
    public $a = 'Stack';
    public $b = $this->a.' Overflow'; // This gives me: "Parse error: syntax error, unexpected '$this'"
}

$instantiate = new ClassName;
echo $instantiate->$b; // Desired result: "Stack Overflow"

?>

如上所述,此尝试会导致错误。对我来说,这种尝试似乎合乎逻辑,但我猜 PHP 并不这么认为。

问题:这可能吗?如果可以,我该如何实现预期的结果?另外,如果你能解释为什么我的尝试失败了(逻辑上),那就太好了。

我已经连续搜索和研究了几个小时,试图找到答案或自己解决这个问题,但在我的一生中,我找不到任何人或任何东西,甚至触及这个(包括其他堆栈溢出线程) )。我什至找不到任何地方说这是不可能的或类似的事情。

我是 PHP 新手,所以我可能需要比其他人更多的解释,但任何类型的帮助或一般指导将不胜感激。谢谢。

最佳答案

定义类时不能使用 $this,因为它引用实例化后可用的具体对象上下文。您可以使用构造函数来完成此类任务。

class ClassName 
    {
        public $a = 'Stack';
        public $b = "";
        function __construct()
        {
          $this->b = $this->a.' Overflow'; 
        }
    }

$instantiate = new ClassName;
echo $instantiate->b; 

关于PHP:如何在类中创建动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257052/

相关文章:

php - 如何在Smarty中生成年份?

c++ - 使用父类中的变量

c++ - 作为类成员的函数的定义

php - 避免使用无效参数实例化对象

dictionary - ansible with_dict 在提供 set_fact 变量时失败

java - 变量可能尚未初始化错误

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - 在共享服务器上设置 Yii

php - 验证 base64 编码的图像

php - 注册表设计模式...好还是坏?