Karoly Negyesi wrote:
To quote one of the most experienced Drupal developer:
"The menu item array includes a copy of the whole node for example on node pages. Well, obviously that might be useful for some help stuff, but most of the time it is not required, so why pass on this data in all cases?"
Why not? Passing data around is basically free. You are not copying the data, you are creating a reference, deep copy only happens if you modify the passed in argument (PHP5 only deep copies an object if you instruct it with clone()). So do not hesitate to pass around as many data as you want.
Not for the first time I urge fellow developers to read http://web.archive.org/web/20061205052540rn_1/www.zend.com/zend/art/ref-coun... this excellent article which is so old that you need archive.org to read it but is still valid.
For deeper understanding read http://book.chinaunix.net/special/ebook/php/Programming.PHP_2/0596006810/pro...
More importantly, this is one of the biggest reasons that people might choose an OO paradigm over a procedural paradigm. With an object oriented model, data tends to stick together; in the procedural model, you get issues like this one, where you find yourself passing data you may or may not need.