(PHP 4, PHP 5)
get_class_vars — Obtener las propiedades predeterminadas de una clase
$class_name
)Obtiene las propiedades predeterminadas de la clase dada.
class_name
El nombre de la clase
Devuelve una matriz asociativa de las propiedades declaradas visibles desde el
ámbito actual, con su valor predeterminado.
Los elementos del array resultante están en la forma
nombre_variable => valor.
En caso de error devuelve FALSE
.
Versión | Descripción |
---|---|
5.0.3 | Según el ámbito, get_class_vars() devolverá sólo las propiedades que pueden ser accedidas desde el ámbito actual. |
5.0.2 | Al llamar a get_class_vars() ahora se expondrán todas las propiedades como una matriz, a diferencia del comportamiento anterior donde las propieades protected y private eran prefijadas con bytes nul. |
5.0.1 | Al llamar a get_class_vars() se expondrán todas las propiedades, como cuando se convierte un objeto en una clase. |
4.2.0 | Las variables de clases no inicializadas ahora también son reportadas por get_class_vars() |
Ejemplo #1 Ejemplo de get_class_vars()
<?php
class miclase {
var $var1; // esta no tiene valor predeterminado...
var $var2 = "xyz";
var $var3 = 100;
private $var4; // PHP 5
// constructor
function miclase() {
// cambiar algunas propiedades
$this->var1 = "foo";
$this->var2 = "bar";
return true;
}
}
$mi_clase = new miclase();
$vars_clase = get_class_vars(get_class($mi_clase));
foreach ($vars_clase as $nombre => $valor) {
echo "$nombre : $valor\n";
}
?>
El resultado del ejemplo sería:
// Antes de PHP 4.2.0 var2 : xyz var3 : 100 // A partir de PHP 4.2.0 var1 : var2 : xyz var3 : 100
Ejemplo #2 get_class_vars() y comportamiento de ámbito
<?php
function formato($matriz)
{
return implode('|', array_keys($matriz)) . "\r\n";
}
class TestCase
{
public $a = 1;
protected $b = 2;
private $c = 3;
public static function expose()
{
echo formato(get_class_vars(__CLASS__));
}
}
TestCase::expose();
echo formato(get_class_vars('TestCase'));
?>
El resultado del ejemplo sería:
// 5.0.0 a| * b| TestCase c a| * b| TestCase c // 5.0.1 - 5.0.2 a|b|c a|b|c // 5.0.3 + a|b|c a