7.10. Finding the Methods and Properties of an Object
Problem
You want to inspect an object to see what methods and properties it has, which lets you write code that works on any generic object, regardless of type.
Solution
Use get_class_methods( )
and get_class_vars( )
to
probe an object for information:
// learn about cars $car_methods = get_class_methods('car'); $car_vars = get_class_vars('car'); // act on our knowledge if (in_array('speed_away', $car_methods)) { $getaway_van = new car; $getaway_van->speed_away( ); }
Discussion
It’s rare to have an object and be unable to examine
the actual code to see how it’s described. Still,
these functions can be useful for projects you want to apply to a
whole range of different classes, such as creating automated class
documentation, generic object debuggers, and state savers, like
serialize( )
.
Both get_class_methods( )
and
get_class_vars( )
return an array of values. In
get_class_methods( )
, the keys are numbers, and
the values are the method names. For get_class_vars( )
, both variable names and default values (assigned using
var
) are returned, with the variable name as the
key and the default value, if any, as the value.
Another useful function is get_object_vars( )
. Unlike its sister function
get_class_vars( )
, get_object_vars( )
returns variable information about a specific instance of
an object, instead of a generic newly created object.
As a result, you can use it to check the status of an object as it currently exists in a program: ...
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.