|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-07-26 08:53 UTC] tony2001@php.net
[2006-07-26 11:27 UTC] moksinski at gmail dot com
[2006-07-26 11:48 UTC] chregu@php.net
[2006-07-26 11:59 UTC] tony2001@php.net
[2010-05-04 18:53 UTC] rrichards@php.net
-Status: Assigned
+Status: Bogus
[2010-05-04 18:53 UTC] rrichards@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 12:00:02 2025 UTC |
Description: ------------ php:functionString tries to access objects with their names in lowercase. when you use autoloader to include your classes it generates fatal error because it cannot find the proper php file. Reproduce code: --------------- <?php //FILE AutoLoaded.php class AutoLoaded { public static function printText($text) { return $text; }} ?> <?php //FILE index.php $xsl=<<<EOSTRING <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" xsl:extension-element-prefixes="php"> <xsl:template match="xml"><xsl:value-of select="php:functionString('AutoLoaded::printText',@dummy)" disable-output-escaping="yes"/> </xsl:template></xsl:stylesheet> EOSTRING; $xml='<xml dummy="everything is ok"/>'; function __autoload($className) { echo $className."\n"; static $classes = array('AutoLoaded'=>'AutoLoaded.php'); require_once($classes[$className]); } $doc = new DOMDocument('1.0','utf-8'); $doc->loadxml($xml); $xslt = new DOMDocument(); $xslt->loadxml($xsl); $proc = new XSLTProcessor(); $proc->registerPHPFunctions(); $proc->importStyleSheet($xslt); $proc->transformToXML($doc); ?> Expected result: ---------------- AutoLoaded Actual result: -------------- autoloaded Fatal error: require_once() [function.require]: Failed opening required ....