(PHP 4, PHP 5, PHP 7)
get_class_vars — Obtener las propiedades predeterminadas de una clase
$class_name
) : arrayObtiene 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 | 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. |
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;
// constructor
function __construct() {
// 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:
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