(PHP 4, PHP 5)
get_class_vars — Obtener las propiedades predeterminadas de una clase
Obtiene las propieades predeterminadas de la clase dada.
El nombre de la clase
Devuelve una matriz asociativa de las propiedades declaradas visibles desde el ámbito actual, con su valor predeterminado. Los elementos de la matriz resultante están en la forma nombrevariable => valor.
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. |
Prior to 4.2.0 | Las variables no inicializadas de clases no serán reportadas por get_class_vars() |
Example #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
Example #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