php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #54631 Cannot call constructor
Submitted: 2011-04-29 13:33 UTC Modified: 2011-06-04 15:26 UTC
From: toolong at mail dot ru Assigned:
Status: Not a bug Package: SPL related
PHP Version: 5.3.6 OS: Windows XP
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
16 + 8 = ?
Subscribe to this entry?

 
 [2011-04-29 13:33 UTC] toolong at mail dot ru
Description:
------------
Trying to overload SplObjectStorage __construct(),
but got an fatal error: Cannot call constructor

Notice that in manual
http://php.net/manual/en/class.splobjectstorage.php
class SplObjectStorage does not contain constructor, at least public.



Test script:
---------------
Class Foo extends SplObjectStorage
{
	public function __construct()
	{
		parent::__construct();
	}
}

$foo = new Foo();

Expected result:
----------------
It should work

Actual result:
--------------
Fatal error: Cannot call constructor

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2011-05-16 18:29 UTC] acurioso@php.net
-Assigned To: +Assigned To: acurioso
 [2011-06-04 15:26 UTC] felipe@php.net
-Status: Assigned +Status: Bogus -Assigned To: acurioso +Assigned To:
 [2011-06-04 15:26 UTC] felipe@php.net
Simply do not call the parent constructor whereas SplObjectStorage doesn't have it. Declaring the constructor in the derived class is not the problem.

You can reproduce the same error inheriting from an user class without constructor, and trying to call it.
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Wed Oct 16 12:01:26 2019 UTC