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.
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.