|
|
 |
get_class (PHP 4, PHP 5) get_class -- Devuelve el nombre de la clase de un
objeto Descripciónstring get_class ( [object obj] )
Esta función devuelve el nombre de la clase de la cual el
objeto obj es una instancia. Devuelve
FALSE si obj no es un objeto.
Nota:
Una clase definida en una extensión PHP es devuelta en su
notación original. En PHP 4
get_class() devuelve un nombre de clase
definido por el usuario en minúsculas, pero en PHP
devolverá el nombre de la clase en su notación
original también, al igual que con los nombres de clase
de las extensiones PHP.
Nota:
A partir de PHP 5, obj es opcional si se
llama desde el método del objeto.
Ejemplo 1. Uso de get_class() |
<?php
class foo {
function foo()
{
}
function nombre()
{
echo "Mi nombre es " , get_class($this) , "\n";
}
}
$bar = new foo();
echo "Su nombre es " , get_class($bar) , "\n";
$bar->nombre();
?>
|
El resultado del ejemplo seria: Su nombre es foo
Mi nombre es foo |
|
Vea también get_parent_class(),
gettype(), e
is_subclass_of().
benjaminhill at gmail dot com
27-Apr-2006 10:47
More funkyness:
class Parent {
function displayTableName() {
echo get_class($this);
echo get_class();
}
}
class Child {
function __construct() {
$this->displayTableName();
}
}
Will return
- Child
- Parent
So when they say "the object isn't required in PHP5" - they don't really mean it.
brjann at NOSPAMATALLgmail dot com
16-Nov-2005 12:39
This behavior is unexpected, but good to be aware of
class parentclass {
public function getClass(){
echo get_class($this); //using "$this"
}
}
class child extends parentclass {
}
$obj = new child();
$obj->getClass(); //outputs "child"
class parentclass {
public function getClass(){
echo get_class(); //note, no "$this"
}
}
class child extends parentclass {
}
$obj = new child();
$obj->getClass(); //outputs "parentclass"
davidc at php dot net
13-Oct-2005 10:25
As of php5, you cannot use get_class($this); in a public static function. You would have to do something like this:
<?php
class BooBoof {
public static function getclass()
{
return __CLASS__;
}
}
$c = BooBoof::getclass();
print $c;
?>
To get the class since you cannot use
<?php
public static function getclass()
{
return get_class($this);
}
?>
Rather simple and straightforward but that might help some people that are searching for it..
wired at evd dot ru
25-Sep-2005 02:25
There is one unexpected bahaviour (for me as least):
<?php
class parent
{
...
public function getInstance ($id)
{
...
print get_class() . "\n" . __CLASS__;
...
}
}
class child extends parent
{
...
}
child::getInstance(...);
?>
This code will produce:
parent
parent
So I can't make "new $className(...)" in getInstance(). The only option is to do a fabric.
kunxin at creaion dot com
25-Jul-2005 05:30
I just migrated from PHP 4 to PHP 5 and noticed that in PHP 5.03 that a lot of code dependent on get_class() and its variants stop working.
It turns out that get_class() and its variants are now case-sensitive.
refrozen dot com
05-Jul-2005 03:01
philip at cornado dot com, it returns the value of the class from which it was called, rather than the instance's name... causing inheritance to result in unexpected returns
MagicalTux at FF.ST
02-Feb-2004 04:11
Note that the constant __CLASS__ is different from get_class($this) :
<?
class test {
function whoami() {
echo "Hello, I'm whoami 1 !\r\n";
echo "Value of __CLASS__ : ".__CLASS__."\r\n";
echo "Value of get_class() : ".get_class($this)."\r\n\r\n";
}
}
class test2 extends test {
function whoami2() {
echo "Hello, I'm whoami 2 !\r\n";
echo "Value of __CLASS__ : ".__CLASS__."\r\n";
echo "Value of get_class() : ".get_class($this)."\r\n\r\n";
parent::whoami(); }
}
$test=new test;
$test->whoami();
$test2=new test2;
$test2->whoami();
$test2->whoami2();
?>
The output is :
Hello, I'm whoami 1 !
Value of __CLASS__ : test
Value of get_class() : test
Hello, I'm whoami 1 !
Value of __CLASS__ : test
Value of get_class() : test2
Hello, I'm whoami 2 !
Value of __CLASS__ : test2
Value of get_class() : test2
Hello, I'm whoami 1 !
Value of __CLASS__ : test
Value of get_class() : test2
In fact, __CLASS__ returns the name of the class the function is in and get_class($this) returns the name of the class which was created.
Dan
29-Jan-2003 10:00
This function does return the class name in lowercase, but that does not seem to make any difference. The code below, although very sloppy, works fine in all of the following configurations.
PHP 4.2.2 on Windows NT5 with Apache 1.3.24
PHP 4.2.1 in Zend Development Environment on box above
PHP 4.2.3 on Linux RedHat 7.3 with Apache 1.3.27
class TeSt {
var $a;
var $b = "Fred";
// Notice the case difference in the constructor name
function Test() {
$classname = get_class($this); // $classname = "test"
$this->ra = get_class_vars($classname);
}
}
// Next line also works with Test(), TEST(), or test()
$obj = new TeSt();
print_r($obj->ra);
Result :
Array
(
[a] =>
[b] => Fred
)
oliver DOT pliquett @mediagear DOT de
13-Aug-2002 08:07
This function can become _VERY_ helpful if you want to return a new object of the same type. See this example:
<?php
class Foo{
var $name;
function Foo( $parameter ){
$this->name = $parameter;
}
function whoami() {
echo "I'm a " . get_class( $this ) ."\n";
}
function getNew() {
$className = get_class( $this );
return new $className ( "world" ) ;
}
}
class Bar extends Foo {
function Bar( $name ){
$this->Foo( $name );
}
function welcome() {
echo "Hello, " . $this->name . "! \n";
}
}
$myBar = new Bar( "Oliver" );
$myBar->welcome();
$baba = $myBar->getNew();
$baba->welcome();
$baba->whoami();
?>
philip at cornado dot com
20-Jun-2002 12:15
As of PHP 4.3.0 the constant __CLASS__ exists and contains the class name.
| |
| | Citas célebres | Todo padre, sobre quien su hijo ose levantar la mano, es culpable de haber engendrado un hijo que levanta la mano sobre él. Charles Péguy Escritor francés (1873-1914) | | Citas en tu mail | | ©Contenidos Gratis |
| Chiste de... Médicos | | El ojo y el café | - Doctor, me duele mucho el ojo cada vez que tomo café.
- Hombre, ¡debe usted sacar antes la cucharilla! | | Chistes en tu mail | | ©ContenidosGratis |
| Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos |  | Cake Mania Jugadores: 6835 Categoría del juego: Acción Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero. |
|  | Rainbow Web Jugadores: 2199 Categoría del juego: Puzzles Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente. |
|  | Mahjongg Fortuna Jugadores: 12462 Categoría del juego: Solitarios Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta. |
|  | Chainz 2 Jugadores: 6955 Categoría del juego: Puzzles Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más. |
|  | Delicious Jugadores: 4405 Categoría del juego: Acción Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues! |
|  | Bookworm Jugadores: 4568 Categoría del juego: Palabras Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos! |
|  | Zuma Jugadores: 4976 Categoría del juego: Acción Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás! |
|  | Jewel of Atlantis Jugadores: 3798 Categoría del juego: Puzzles Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis. |
|  | Jewel Quest Jugadores: 3727 Categoría del juego: Puzzles Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos! |
|  | Bejeweled 2 Jugadores: 3659 Categoría del juego: Puzzles Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca. |
|
|