Package home | Report new bug | New search | Development Roadmap Status: Open | Feedback | All | Closed Since Version 1.2.4

Bug #906 PEAR QA: improvement for get_class()-usage
Submitted: 2004-02-26 14:30 UTC
From: pear-qa at lists dot php dot net Assigned: dallen
Status: Closed Package: XML_XPath
PHP Version: Irrelevant OS:
Roadmaps: (Not assigned)    
Subscription  
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes. If this is not your bug, you can add a comment by following this link. If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
2004-03-02 05:11 UTC
Package:
Bug Type:
Summary:
From: pear-qa at lists dot php dot net
New email:
PHP Version: Package Version: OS:

 

 [2004-02-26 14:30 UTC] pear-qa at lists dot php dot net
Description: ------------ ## from the PEAR QA team ## ## quality-assurance related ## Please note that if you don't react to this issue within 4 weeks the PEAR QA-team will take care of it automatically. This is not "rude" but necessary for QA. If this is a "false positive" and your package is not affected please apologize. This package uses get_class()-calls without care for case-sensitivity of the returned classnames. In PHP 4.x the default for getclass() was that lowercase classnames were returned. However, due to extended DOM functionality, PHP 5.x returns classnames with correct upper-and-lowercase. If you intend to run your package under both PHP4 and PHP5 please consider using case-independent comparisons or apply case-fixes. Found in: FILE: '/cvs/php/pear/XML_XPath/XPath.php' : /cvs/php/pear/XML_XPath/XPath.php(129): // get_class returns a lowercase name /cvs/php/pear/XML_XPath/XPath.php(130): if ($in_type == 'object' && strtolower(get_class($in_xml)) == 'domdocument') { /cvs/php/pear/XML_XPath/XPath.php(149): // get_class returns a lowercase name /cvs/php/pear/XML_XPath/XPath.php(150): if (strtolower(get_class($this->xml)) == 'domdocument') { ---------------------------------------- FILE: '/cvs/php/pear/XML_XPath/XPath/common.php' : /cvs/php/pear/XML_XPath/XPath/common.php(47): $class = is_object($class) ? get_class($class) : $class; /cvs/php/pear/XML_XPath/XPath/common.php(1430): if (strtolower(get_class($this->ctx)) != 'xpathcontext') { /cvs/php/pear/XML_XPath/XPath/common.php(1624): if (strtolower(get_class($this->ctx)) != 'xpathcontext') Reproduce code: --------------- Affected are constructs like: if (get_class($foo) == 'foo') { ... } Possible solutions for correct class-checks: strtolower(get_class($foo)) == 'foo' is_a($foo, 'foo') !strcasecmp(get_class($foo), 'foo')

Comments

 [2004-03-02 05:11 UTC] dallen at php dot net
Thank you for your bug report. This issue has already been fixed in the latest released version of the package, which you can download at http://pear.php.net/packages.php I don't know if this bug was automatically created, but the point of the last release was to introduce a fix for this exact situation. It is currently available as a release. All references to get_class are lowercased before the comparison.