首页 > 解决方案 > 有没有办法让 `$this->$key` 被声明为受保护或私有而不是公共

问题描述

我在一个使用 PHP 的类中有这个方法

public function setRows(string $key, array $value)
{
    $this->$key = $value;
}

有没有一种方法$this->$key可以声明为受保护的或私有的而不是公共的?

标签: php

解决方案


您必须将所有可能的密钥声明为私有密钥,或者您只能使用一个私有属性来保存所有密钥

class Foo {
    private $data;

    public function setRows(string $key, array $value)
    {
        $this->data[$key] = $value;
    }

    public function getRows(string $key)
    {
        return $this->data[$key];
    }
}


推荐阅读