PHP - 构造函数中的变量在类的其他函数中为空 [closed]

PHP - variable in constructor is empty in other functions of the class [closed]

提问人:Daniel Bibawy 提问时间:9/29/2022 更新时间:9/30/2022 访问量:93

问:


去年关闭。

我正在尝试从类中的函数访问关联数组$foo。当我记录另一个函数的内容时,它是空的。我真的不确定我做错了什么。

class Item {
    function __construct($x = 1) {
        $y = do_something($x);
        
        $foo = [
            'id' => $y['anotherID'],
            'name' => $y['name']
        ];
    }

    function insertData($data) {
        $variable = $this->foo['id'];
        // if I print $this->foo['id'] I get no output
    }
}

我还尝试了另一个使用 self::$foo 的建议,但遇到了各种关于私有和静态的错误?

PHP 函数 oop 构造函数 this

评论

2赞 Barmar 9/29/2022
您需要分配给 。否则,它只是一个普通的局部变量,而不是属性。$this->foo
0赞 Daniel Bibawy 9/29/2022
@Barmar由于某种原因,我无法添加您的评论作为解决方案?
0赞 Barmar 9/29/2022
我没有把它作为答案发布。我认为这是微不足道的,就像一个错别字,不值得回答。
0赞 ADyson 9/29/2022
这是您可以在示例和文档中轻松了解的内容,因此不太可能值得回答。或者充其量,有人过去已经问过同样的事情,所以一个敏锐的搜索者可能会在某个时候挖出一个副本,并将问题作为副本关闭。
0赞 Nico Haase 9/30/2022
请分享更多细节。您尝试了什么来解决问题?你被困在哪里了?与问题相关吗?do_something

答:

0赞 figgyfarts 9/30/2022 #1

您需要使用 $this->foo = [] 而不是 $foo = []。它使它成为类的属性。