Re: PHP 5 Question about OO

From: Date: Wed, 01 Jun 2005 09:21:31 +0000
Subject: Re: PHP 5 Question about OO
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-216132@lists.php.net to get a copy of this message
On 1 Jun 2005, at 09:01, janbro wrote:
require (Class2.php); class Class1{
    private function ... {
        $refClass2 = new Class2;
    }
} Now my question, is it possible to skip that require/ include part? In Java you don't need that, as class and file names are identical.
PHP doesn't have this luxury - people can call files whatever they like. However, PHP5 does have a nice feature to deal with this. In your class1 class, create a function called __autoload like this: function __autoload($class_name) { require_once $class_name . '.php'; } In this case when you ask for a new class2 and you've not required it before, it will automatically call __autoload with $class_name set to 'Class2', which then requires the class file according to the pattern used in the function, in this case 'Class2.php'. Note that while PHP is not case sensitive to class names, the file system you're on probably is, so keep your case consistent throughout. Docs are here: http://www.php.net/manual/en/language.oop5.autoload.php Marcus -- Marcus Bointon Synchromedia Limited: Putting you in the picture marcus@synchromedia.co.uk | http://www.synchromedia.co.uk

« previous php.general (#216132) next »