A ver, ¿si entiendes la diferencia entre objetos y arrays?
Una propiedad de un objeto puede ser un array, no veo el problema:
Código PHP:
$this->options = array();
array_key_exists('clave', $this->options);
Que dicho array esté asignado a una propiedad no le quita cualidades de array, ya que property_exists() sería algo así:
Código PHP:
property_exists('options', $this);
Hay una gran diferencia, deberías reflexionar.