From: Marcus Boerger Date: Sat, 2 Feb 2008 21:02:08 +0000 (+0000) Subject: - Show interfaces X-Git-Tag: RELEASE_2_0_0a1~654 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2d4c9b291fc84c72bd701de9b905c4a6f460f4bd;p=php - Show interfaces --- diff --git a/ext/spl/examples/class_tree.php b/ext/spl/examples/class_tree.php index f7336f4605..fc021d5c01 100755 --- a/ext/spl/examples/class_tree.php +++ b/ext/spl/examples/class_tree.php @@ -4,7 +4,7 @@ * @brief Class Tree example * @ingroup Examples * @author Marcus Boerger - * @date 2003 - 2006 + * @date 2003 - 2008 * @version 1.1 * * Usage: php class_tree.php \ @@ -76,12 +76,29 @@ class SubClasses extends RecursiveArrayIterator } $this->uksort('strnatcasecmp'); } - + /** @return key() since that is the name we need */ function current() { - return parent::key(); + $result = parent::key(); + $parent = get_parent_class($result); + if ($parent) + { + $interfaces = array_diff(class_implements($result), class_implements($parent)); + if ($interfaces) + { + $implements = array(); + foreach($interfaces as $interface) + { + $implements = array_merge($implements, class_implements($interface)); + } + $interfaces = array_diff($interfaces, $implements); + natcasesort($interfaces); + $result .= ' (' . join(', ', $interfaces) . ')'; + } + } + return $result; } }