#40679 [Fbk->Opn]: problems with $class_name in __autoload

From: Date: Sat, 03 Mar 2007 05:08:37 +0000
Subject: #40679 [Fbk->Opn]: problems with $class_name in __autoload
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-109814@lists.php.net to get a copy of this message
ID: 40679 User updated by: habeck at gmx dot de Reported By: habeck at gmx dot de -Status: Feedback +Status: Open Bug Type: Unknown/Other Function Operating System: windows 2003 / apache 2.2.4 PHP Version: 5.2.1 New Comment: There are three files: autoload-file (test.php): <?php function __autoload($class_name) { require_once($class_name.'.php'); } $txt = 'config.xml'; $o = new blah($txt); $o->sayHallo(); ?> class-file (blah.php): <?php class blah { private $var; function __construct($var = '') { $this->var = simplexml_load_file($var, '', LIBXML_NOCDATA+LIBXML_COMPACT); } function sayHallo() { print('hallo world!'); } } ?> xml-file (config.xml): <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <config> <templates> </templates> </config> error comment: I have tried to find out where the error occurs and it seems that the empty second parameter in the function call "simplexml_load_file" overrides the variable value of $class_name. Previous Comments: ------------------------------------------------------------------------ [2007-03-01 11:08:45] tony2001@php.net Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2007-03-01 10:56:35] habeck at gmx dot de same error on windows 2003 with apache 2.0.59 ------------------------------------------------------------------------ [2007-03-01 10:03:41] habeck at gmx dot de Description: ------------ I have also problems with __autoload on windows 2003 apache 2.2.4/php 5.2.1. The following function does not what it did in apache 2.0.x and earlier versions of php: function __autoload($class_name) { require_once(KH_APP_LIBPATH.$class_name.'.php'); } The errormessage: PHP Fatal error: require_once(): Failed opening required 'D:/xxx/xxx/.php' (include_path='./;D:/xxx/xxx/') in D:\xxx\xxx\index.php on line 6 So there seems to be no value for $classname. Reproduce code: --------------- function __autoload($class_name) { require_once(KH_APP_LIBPATH.$class_name.'.php'); } Expected result: ---------------- Opening the classfile: D:/xxx/xxx/blah.php Actual result: -------------- PHP Fatal error: require_once(): Failed opening required 'D:/xxx/xxx/.php' (include_path='./;D:/xxx/xxx/') in D:\xxx\xxx\index.php on line 6 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=40679&edit=1

« previous php.bugs (#109814) next »