Это не совсем так.
get_object_vars
зависит от области и возвращает все видимые свойства, исключая статические свойства независимо от их видимости. Если вы позвоните из-за пределов своего класса, вы получите только открытых участников; из производного класса вы получите защищенных и открытых членов; и из самого класса, вы получите все члены. Ключи массива представляют имена свойств и не искажены.
Приведение (array)
возвращает, по крайней мере в PHP 5.3.0, все свойства объекта, public и другие. Название свойств искажено в соответствии с их уровнем защиты:
public
: не искалечено, идентично именам свойств
protected
: имя ключа для свойства начинается с *
private
: имя ключа для свойства начинается с имени класса
См. приведение к массиву для получения дополнительной информации.
Надеюсь, вы сможете лучше понять, какой из них наиболее подходит для вашей ситуации.