[wp-trac] [WordPress Trac] #14881: do_action should not pass empty string by default
WordPress Trac
wp-trac at lists.automattic.com
Wed Sep 15 20:46:47 UTC 2010
#14881: do_action should not pass empty string by default
--------------------------+-------------------------------------------------
Reporter: nacin | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Plugins | Version:
Severity: normal | Keywords: has-patch
--------------------------+-------------------------------------------------
Description changed by nacin:
Old description:
> {{{
> function test( $a = true ) {
> var_dump( $a );
> }
> add_action( 'test', 'test' );
> add_action( 'test', 'test', 10, 0 );
> do_action( 'test' );
> }}}
> First example is bool(true), but the second is a zero-length string.
>
> In this case, since do_action() is not passing any arguments, then no
> arguments should be passed to test() -- even if by default, one argument
> gets passed.
>
> The issue here is how do_action() is defined: `function do_action( $tag,
> $arg = '' );`. There's our zero-length string. Of note, apply_filters()
> does not have this same issue.
>
> The solution looks something like what I have attached. Has yet to be
> benchmarked.
>
> Of note, this does not appear to have any direct implications for passing
> all args by default, as proposed in #14671, but I wanted to reference it
> anyway.
New description:
{{{
function test( $a = true ) {
var_dump( $a );
}
add_action( 'test', 'test' );
add_action( 'test', 'test', 10, 0 );
do_action( 'test' );
}}}
Second example is bool(true) as expected, but the first is a zero-length
string.
In this case, since do_action() is not passing any arguments, then no
arguments should be passed to test() -- even if by default, one argument
gets passed.
The issue here is how do_action() is defined: `function do_action( $tag,
$arg = '' );`. There's our zero-length string. Of note, apply_filters()
does not have this same issue.
The solution looks something like what I have attached. Has yet to be
benchmarked.
Of note, this does not appear to have any direct implications for passing
all args by default, as proposed in #14671, but I wanted to reference it
anyway.
--
--
Ticket URL: <http://core.trac.wordpress.org/ticket/14881#comment:1>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list