php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #39758 Error message on extending a class that implements a interface
Submitted: 2006-12-06 16:31 UTC Modified: 2006-12-25 14:35 UTC
Votes:5
Avg. Score:3.2 ± 0.4
Reproduced:2 of 2 (100.0%)
Same Version:1 (50.0%)
Same OS:0 (0.0%)
From: bacher at bash-it dot de Assigned: dmitry (profile)
Status: Wont fix Package: Class/Object related
PHP Version: 5.2.0 OS: Linux Ubuntu 6.0
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: bacher at bash-it dot de
New email:
PHP Version: OS:

 

 [2006-12-06 16:31 UTC] bacher at bash-it dot de
Description:
------------
If one tries to extend a class that implements a Interface, php5 produces a error message:
Fatal error: Class 'Bar' not found in foo.php on line xxxxx

I use the CLI Version of php.
PHP 5.1.2 (cli) (built: Nov  2 2006 12:29:42)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies



Reproduce code:
---------------
<?php   
        class Bar extends Foo {
        }
        interface i {
        }
        class Foo implements i {
        }
?>


Expected result:
----------------
started on the commandline with the command:
php5 foo.php it should return simply nothing. But it throws an error.
if you just extend the class after you defined it it does not throw the error:
<?php   
        interface i {
        }
        class Foo implements i {
        }
        class Bar extends Foo {
        }
?> 
Since this behaviour is not reproducable with a missing Interface, i think this is a Error on Interfaces.

Actual result:
--------------
The error message 
Fatal error: Class 'Bar' not found in foo.php on line xxxxx

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-12-06 16:34 UTC] bacher at bash-it dot de
Sorry, just while reading. The error Message is not:
Fatal error: Class 'Bar' not found in foo.php on line xxxxx

but 
Fatal error: Class 'Foo' not found in foo.php on line xxxxx

sorry for that. i hope you can reproduce it.
 [2006-12-25 14:35 UTC] dmitry@php.net
This is not a bug.
PHP always declares classes those implement interfaces at run-time. So in your example you cannot declare "Bar" because "Foo" is not declared yet.
Your report may be categorised as "feature request", but it cannot be fixed in 5.2.* anyway, because of binary compatibility.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Sun Jan 05 05:01:28 2025 UTC