#40679 [Bgs->Csd]: problems with $class_name in __autoload
| From: | habeck at gmx dot de | Date: | Sat, 03 Mar 2007 22:06:39 +0000 |
| Subject: | #40679 [Bgs->Csd]: problems with $class_name in __autoload | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-109847@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: Bogus
+Status: Closed
Bug Type: Unknown/Other Function
Operating System: *
PHP Version: 5.2.1
Assigned To: helly
New Comment:
Sorry for this "bug report". You are right for version 5.2.1. In
earlier versions it automatically seems to replace the empty string
(second argument) with "SimpleXMLElement" and everything works fine.
Now you explicitly have to fill in the default classname
"SimpleXMLElement". So thanks for the help.
Previous Comments:
------------------------------------------------------------------------
[2007-03-03 13:39:01] helly@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
Ok read this again. It is all perfectly fine and there is no crash.
There is only an E_ERROR. That is because you explicitly set class name
to \'\' - RTFM.
------------------------------------------------------------------------
[2007-03-03 11:21:24] helly@php.net
The crash is not good but you should really read the documentation.
I'll fix the crash. Not your problem though.
------------------------------------------------------------------------
[2007-03-03 05:08:36] habeck at gmx dot de
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.
------------------------------------------------------------------------
[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
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/40679
--
Edit this bug report at http://bugs.php.net/?id=40679&edit=1