gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:35:51 24 4
gpt4 key购买 nike

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

<?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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com