Edit report at https://bugs.php.net/bug.php?id=52003&edit=1
ID: 52003 Updated by: larue...@php.net Reported by: v1d4l0k4 at gmail dot com Summary: Incorrect PDOStatement::execute() signature Status: Assigned Type: Bug Package: PDO related Operating System: Irrelevant PHP Version: Irrelevant Assigned To: pierrick Block user comment: N Private report: N New Comment: maybe change to doc problem, there maybe already some user defined their extended class with the *wrong* signature. Previous Comments: ------------------------------------------------------------------------ [2012-09-09 14:37:41] reeze dot xia at gmail dot com This seems been forgotten by pierrick. ------------------------------------------------------------------------ [2012-01-30 05:52:51] larry at ldrutledge dot com The situation appears to be unchanged in 5.3.9. The manual still shows a type hint of array but a method in an extended class still triggers a warning unless the type hint is omitted. ------------------------------------------------------------------------ [2010-10-19 07:07:17] ka...@php.net Pierrick, why don't you commit that patch the src? And add a changelog entry if reasonable for PDOStatement::execute() :) ------------------------------------------------------------------------ [2010-06-06 06:13:42] pierr...@php.net The following patch has been added/updated: Patch Name: ZEND_ARG_ARRAY_INFO Revision: 1275797622 URL: http://bugs.php.net/patch-display.php?bug=52003&patch=ZEND_ARG_ARRAY_INFO&revision=1275797622 ------------------------------------------------------------------------ [2010-06-05 22:53:10] v1d4l0k4 at gmail dot com Description: ------------ Manual says PDOStatement::execute() signature is: bool PDOStatement::execute ([ array $input_parameters = array() ] ) But in fact it is: bool PDOStatement::execute ([ $input_parameters = null ] ) Test script: --------------- <?php class DBStatement extends PDOStatement { public function execute(array $input_parameters = array()) { return parent::execute($input_parameters); } } $PDO = new PDO('mysql:host=127.0.0.1', 'root', ''); $PDO->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('DBStatement')); Expected result: ---------------- No errors Actual result: -------------- Strict Standards: Declaration of DBStatement::execute() should be compatible with that of PDOStatement::execute() in /media/ext/Web/htdocs/test/bug.php on line 9 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=52003&edit=1