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

Reply via email to