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 this is not your bug, you can add a comment by following this link.
If this is your bug, but 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

Add a Patch

Pull Requests

Add a Pull Request

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-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 25 21:01:36 2024 UTC