As propriedades da classe devem ser armazenadas como variáveis ​​ou em uma matriz [fechada]

Eu tenho usado php por um tempo agora, e sempre me perguntei qual é a melhor maneira de armazenar propriedades em uma classe.

O primeiro método é armazenar os dados como propriedades.

class Foo{
    private $id;
    private $name;

    function __get($var){
        return $this->$var;
    }
}

O outro método é armazenar os dados em uma matriz e, em seguida, usar métodos mágicos para recuperá-los como uma variável regular na classe.

class Bar{
    private $data;

    function __get($var){
        return $this->data[$var];
    }
}

Já que ambos os métodos atingirão o mesmo objetivo, qual é o melhor e por quê?

questionAnswers(2)

yourAnswerToTheQuestion