get_class_vars

(PHP 4, PHP 5, PHP 7, PHP 8)

get_class_varsObtener las propiedades predeterminadas de una clase

Descripción

get_class_vars(string $class_name): array

Obtiene las propiedades predeterminadas de la clase dada.

Parámetros

class_name

El nombre de la clase

Valores devueltos

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.

Historial de cambios

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.

Ejemplos

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

Ver también