[development] Drupal - to use objects or arrays

Larry Garfield larry at garfieldtech.com
Wed Jan 10 03:05:29 UTC 2007

I think the general guideline is "use what makes semantic sense at the time".  
A single entity is an object.  (Eg, nodes, users, etc.)  A list of things is 
an array.  A list of entities is an array of objects.

When you get into really complex data structures, like FAPI, then I think 
deeply-nested arrays are easier to work with and more predictable (esp. 
between PHP 4 and PHP 5) than deeply-nested objects.  You can have an object 
one of whose properties is a complex nested array (Nodes created with CCK, 
esp. in Drupal 5, do that).  

There's no hard rule, but I think "what makes semantic sense when writing it" 
is the guideline.  Oh yes, and when iterating over records from a database 
where it really doesn't make a difference, using db_fetch_object() seems more 
common than db_fetch_array(), simply because there's fewer funky characters 
involved with objects than arrays. :-)

On Tuesday 09 January 2007 3:57 pm, Doug Green wrote:
> To use objects or arrays?  What is the "Drupal way"?  I'd rather write code
> using objects (php's stdClass).  But I've run into a ton of problems using
> objects on php4.
> The CiviCRM folks have this handy guide for php5 -> php4:
> http://wiki.civicrm.org/confluence/display/CRM/Writing+PHP4+Compatible+code
> But even after using it, I'm having difficulties.  I'm starting to conclude
> that I should convert all my object references to arrays.  I only see a
> couple of object references in core, and none to anything complicated
> (arrays of objects, objects pointing to objects, object elements of arrays
> of objects, etc).
> Doug Green
> www.douggreenconsulting.com <http://www.douggreenconsulting.com/>
> www.civicactions.com
> Changing the world one node at a time!

Larry Garfield			AIM: LOLG42
larry at garfieldtech.com		ICQ: 6817012

"If nature has made any one thing less susceptible than all others of 
exclusive property, it is the action of the thinking power called an idea, 
which an individual may exclusively possess as long as he keeps it to 
himself; but the moment it is divulged, it forces itself into the possession 
of every one, and the receiver cannot dispossess himself of it."  -- Thomas 

More information about the development mailing list