[wp-hackers] Question about do_action & its handling of arguments

Claude Needham gxxaxx at gmail.com
Wed Jul 27 16:41:58 UTC 2011


Can someone provide a little insight on why do_action is handling
arguments in the following fashion?

http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/plugin.php
386	        $args = array();
387	        if ( is_array($arg) && 1 == count($arg) && isset($arg[0])
&& is_object($arg[0]) ) // array(&$this)
388	                $args[] =& $arg[0];
389	        else
390	                $args[] = $arg;

It looks to me like the fundamental nature of the argument I am
passing changes depending upon the count.

This means that when I use foreach in the action handling  function
the nature of the iteration changes depending upon the count.

I would have expected the arguments to passed through the function in
a transparent fashion.

I'm curious what situation is being made easier by do_action's current
approach to handling arguments.
And, I'd like to know the best practices for handling the argment in
order to account for its change depending upon the count of the
original array.

Regards,
Claude


More information about the wp-hackers mailing list