Преобразование объекта в массив дает странный результат

Я пытаюсь преобразовать класс в массив. Я использую следующий код:

class Abc{ private $x, $y, $z; protected $x1, $y1, $z1; protected $x2, $y2, $z2; public function __construct() { $this->x=$this->y=$this->z=$this->x1=$this->y1=$this->z1=$this->x2=$this->y2=$this->z2=0; } public function getData() { return $x; } public function toArray() { return (array)$this; } } $abc = new Abc(); echo '<pre>', print_r($abc->toArray(), true), '</pre>'; 

Теперь странная вещь – выход:

 Array ( [Propertyx] => 0 [Propertyy] => 0 [Propertyz] => 0 [*x1] => 0 [*y1] => 0 [*z1] => 0 [*x2] => 0 [*y2] => 0 [*z2] => 0 ) 

Я хочу чистые ключи без имени Class и * перед именами клавиш.

Может ли кто-нибудь предложить мне, как преобразовать имена членов в ключи массива без имени класса и без (*). Другие решения также приветствуются.

существует специальная функция

 public function toArray() { return get_object_vars($this); } 

результат

 <pre>Array ( [x] => 0 [y] => 0 [z] => 0 [x1] => 0 [y1] => 0 [z1] => 0 [x2] => 0 [y2] => 0 [z2] => 0 ) </pre> 

демонстрация