Comment 1 for bug 1605127

Revision history for this message
Aaron Wells (u-aaronw) wrote : Re: Mismatched function declaration, urdate_url() in lib/activity.php

Hi Howard,

You are correct. The abstract "Activity" class defines update_url() with no parameters, but then calls it with one parameter a few lines later.

The excess parameter itself actually doesn't cause any problems. If you're calling $this->update_url($something) on an Activity subclass that doesn't override update_url(), then PHP will silently accept it and assume you're doing a variable-length argument list ( http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list ). In PHP 5.5 it won't even print an E_STRICT warning or anything. In PHP 5.6 and up, it might, since they've added the "..." syntax to explicitly indicate a variable-length argument list.

The bigger problem here is the mismatch in the signature of the update_url() method between Activity and its subclasses. That will throw an E_STRICT warning in PHP 5, but it's a fatal error in PHP 7.