Skip to content
Advertisement

How to programmatically find public properties of a class from inside one of it’s methods

I’ve got a class Foo with public and protected properties. Foo needs to have a non-static method, getPublicVars() that returns a list of all the public properties of Foo (this is just an example, I know from outside the Foo object calling get_object_vars() will accomplish this and there is no need for my getPublicVars() method).

Note: This must also return dynamically declared properties assigned at runtime to the class instance (object) that aren’t defined in the class’s definition.

Here’s the example:

JavaScript

What is the most concise way to get the only the public properties of an object from inside a class’s own methods where both public and protected are visible?

I’ve looked at:

But this doesn’t seem to address my question as it points to using get_object_vars() from outside the object.

Advertisement

Answer

As you already realized, PHP’s build in get_object_vars is scope-sensitive. You want the public object properties only.

So from that function to the public variant is not a large step:

JavaScript

Calling this get_object_public_vars will give you only the public properties then because it is place out of scope of the current object.

If you need more fine-grained control, you can also make use of the ReflectionObject:

JavaScript

Which has the benefit that you don’t need to introduce another function in the global namespace.

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement