suche nach in der

interface_exists> <get_object_vars
Last updated: Fri, 18 May 2012

view this page in

get_parent_class

(PHP 4, PHP 5)

get_parent_classGibt den Namen der Elternklasse eines Objektes zurück

Beschreibung

string get_parent_class ([ mixed $object ] )

Gibt den Namen der Elternklasse eines Objekts oder einer Klasse zurück.

Parameter-Liste

object

Das untersuchte Objekt oder der untersuchte Klassenname.

Rückgabewerte

Gibt den Namen der Elternklasse der Klasse zurück, von der object eine Instanz oder der Name ist.

Hinweis:

Falls das Objekt keine Elternklasse hat, wird FALSE zurückgegeben.

Falls die Funktion außerhalb eines Objekts ohne Parameter aufgerufen wird, gibt sie FALSE zurück.

Changelog

Version Beschreibung
Vor 5.1.0 Falls die Funktion außerhalb eines Objekts ohne Parameter aufgerufen wird, gibt sie NULL zurück mit einer Warnung.
Seit 5.0.0 Der Parameter object ist optional, falls die Funktion von einer Methode eines Objekts aufgerufen wird.
Seit 4.0.5 Falls object eine Zeichenkette ist, gibt diese Funktion den Namen der Elternklasse der Klasse mit diesem Namen zurück.

Beispiele

Beispiel #1 Die Verwendung von get_parent_class()

<?php

class vater {
  function 
vater()
  {
  
// implementiert etwas Logik
  
}
}

class 
kind extends vater {
  function 
kind()
  {
    echo 
"Ich bin das Kind von " get_parent_class($this) , "\n";
  }
}

class 
kind2 extends vater {
  function 
kind2()
  {
    echo 
"Ich bin ebenfalls das Kind von " get_parent_class('kind2') , "\n";
  }
}

$foo = new kind();
$bar = new kind2();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ich bin das Kind von vater
Ich bin ebenfalls das Kind von vater

Siehe auch



add a note add a note User Contributed Notes
get_parent_class
birkholz at web dot de
07-Oct-2005 02: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 04: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 03: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
06-Apr-2003 05: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 01: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: Fri, 18 May 2012