Edit report at http://bugs.php.net/bug.php?id=52063&edit=1
ID: 52063 Updated by: [email protected] Reported by: [email protected] Summary: DateTime constructor's second argument doesn't have a null default value -Status: Assigned +Status: Closed Type: Bug Package: Date/time related Operating System: Irrelevant PHP Version: 5.3.2 Assigned To: derick Block user comment: N Private report: N New Comment: This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2011-01-24 02:15:43] [email protected] Automatic comment from SVN on behalf of stas Revision: http://svn.php.net/viewvc/?view=revision&revision=307688 Log: Fixed Bug #52063 (DateTime constructor's second argument doesn't have a null default value) ------------------------------------------------------------------------ [2010-06-12 12:29:03] [email protected] Description: ------------ DateTime's constructor is documented like this: public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] ) However, not passing the constructor the second argument is not the same as passing NULL. Fixing this is just a matter of adding a "!", like this if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO", &time_str, &time_str_len, &timezone_object, date_ce_timezone)) { into if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone)) { Test script: --------------- <?php date_default_timezone_set("Europe/Lisbon"); $a = new DateTime("2009-01-01", null); echo $a->format(DateTime::COOKIE); Expected result: ---------------- Thursday, 01-Jan-09 00:00:00 WET Actual result: -------------- Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() expects parameter 2 to be DateTimeZone, null given' in /tmp/cpCZPA42:4 Stack trace: #0 /tmp/cpCZPA42(4): DateTime->__construct('2009-01-01', NULL) #1 {main} thrown in /tmp/cpCZPA42 on line 4 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52063&edit=1
