<?php
class A extends B {}
class B implements C {}
interface C {}
the code above throws “Fatal error: Class ‘B’ not found”…
Is it a php bug? Or?
Environment: “PHP 5.3.6-13ubuntu3.2 with Suhosin-Patch (cli) (built: Oct 13 2011 23:19:13)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
“
You have trouble specifically with the order of your class definitions. As long as the interface is defined in the same file, it can be declared anywhere – but classes must be defined before they can be extended.
The following is perfectly valid order in PHP:
There is a closed bug requesting clarification in the PHP5 docs.
An answer to a similar question (Does the order of class definition matter in PHP?) mentions Autoloading. You may want to look into this if you’re using multiple files.