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
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: toolong at mail dot ru
New email:
PHP Version: OS:

 

 [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: Tue Aug 20 13:01:27 2019 UTC