helly Fri Oct 21 19:42:57 2005 EDT
Modified files:
/php-src/ext/spl/examples class_tree.php
Log:
- Do not include because of implementing an interface if parent implements
the interface already
http://cvs.php.net/diff.php/php-src/ext/spl/examples/class_tree.php?r1=1.4&r2=1.5&ty=u
Index: php-src/ext/spl/examples/class_tree.php
diff -u php-src/ext/spl/examples/class_tree.php:1.4
php-src/ext/spl/examples/class_tree.php:1.5
--- php-src/ext/spl/examples/class_tree.php:1.4 Mon Oct 3 09:34:01 2005
+++ php-src/ext/spl/examples/class_tree.php Fri Oct 21 19:42:56 2005
@@ -33,17 +33,25 @@
{
foreach(get_declared_classes() as $cname)
{
- if (strcasecmp(get_parent_class($cname), $base) == 0)
+ $parent = get_parent_class($cname);
+ if (strcasecmp($parent, $base) == 0)
{
$this->offsetSet($cname, new
SubClasses($cname));
}
if ($check_interfaces)
{
+ if ($parent)
+ {
+ $parent_imp = class_implements($parent);
+ }
foreach(class_implements($cname) as $iname)
{
if (strcasecmp($iname, $base) == 0)
{
- $this->offsetSet($cname, new
SubClasses($cname));
+ if (!$parent ||
!in_array($iname, $parent_imp))
+ {
+
$this->offsetSet($cname, new SubClasses($cname));
+ }
}
}
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php