Web студия "GrandView"
  Главная   Написать Контакты
   
   
О проекте
Руководство php
 

get_parent_class

(PHP 4, PHP 5)

get_parent_class -- Возвращает имя класса базового для объекта или класса

Описание

string get_parent_class ( mixed obj )

Если obj, функция возвращает имя класса базового для класса, экземпляром которого является obj.

Если obj является строкой, функция возвращает имя класса базового для класса с этим именем. Эта возможность была добавлена в PHP 4.0.5.

Пример 1. Пример использования get_parent_class()

<?php

class dad {
    function
dad()
    {
   
// имплементация чего-либо
   
}
}

class
child extends dad {
    function
child()
    {
        echo
"I'm " , get_parent_class($this) , "'s son\n";
    }
}

class
child2 extends dad {
    function
child2()
    {
        echo
"I'm " , get_parent_class('child2') , "'s son too\n";
    }
}

$foo = new child();
$bar = new child2();

?>

вывод:

I'm dad's son
I'm dad's son too

См. также get_class() и is_subclass_of().



interface_exists> <get_object_vars
Last updated: Sat, 27 Jan 2007
 
add a note add a note User Contributed Notes
get_parent_class
birkholz at web dot de
06-Oct-2005 05:01
tim at correctclick dot com wrote:
<quote>
A slightly more cryptic but faster get_ancestors function:

<?php
function get_ancestors ($class) {
         
     for (
$classes[] = $class; $class = get_parent_class ($class); $classes[] = $class);
     return
$classes;
     
}
?>
(The second part of the for is implicitly testing for $class != "").  Recursion is considerably slower than looping, so you probably want to use this function.

Hope someone finds it useful.
</quote>

I would prefer this version, because it will create no duplicates:
<?php
function get_ancestors ($class) {
   
$classes = array($class);
    while(
$class = get_parent_class($class)) { $classes[] = $class; }
    return
$classes;
}

Greets, Dennis
?>
matt-php at DONT-SPAM-ME dot bitdifferent dot com
01-Nov-2004 07:52
PHP (4 at least, dunno about 5) stores classnames in lower case, so:

<?PHP

class Foo
{
}

class
Bar extends Foo
{
}

echo
get_parent_class('Bar');

echo
"\n";

echo
get_parent_class('bar');

?>

will output:

foo
foo
radu dot rendec at ines dot ro
07-Apr-2004 06:44
If the argument obj is a string and the class is not defined, then the function returns FALSE.

If the argument obj is an object created from a class with no ancestors (or a string representing a class with no ancestors), then the function returns FALSE.
tim at correctclick dot com
05-Apr-2003 07:48
A slightly more cryptic but faster get_ancestors function:

function get_ancestors ($class) {
           
      for ($classes[] = $class; $class = get_parent_class ($class); $classes[] = $class);
      return $classes;
       
}

(The second part of the for is implicitly testing for $class != "").  Recursion is considerably slower than looping, so you probably want to use this function.

Hope someone finds it useful.
eric dot brison at anakeen dot com
28-Jan-2002 04:14
To return all ancestors class of an object

function get_ancestors_class($classname) {
  $father = get_parent_class($classname);

  if ($father != "") {

    $ancestors = get_ancestors_class($father);
    $ancestors[] = $father;
  }
  return $ancestors;
}

example :
-----------
Class C  {

}

Class B extends C {

}

Class A extends B {

}
print_r (get_ancestors_class("a"));
print_r (get_ancestors_class("b"));

example result :
---------------
Array
(
    [0] => c
    [1] => b
)
Array
(
    [0] => c
)

interface_exists> <get_object_vars
Last updated: Sat, 27 Jan 2007
 
 
Новости
11 июля 2007
Сайт запущен
© 2007 info@grandviewstudio.com
Z058440144362 Z348613067571