stdClass la clase sin propiedades de PHP

En PHP existe una clase predefinida en el lenguaje que se llama stdClass. ¿Y que hace tan especial a esta clase? Pues que no tiene ni propiedades, ni métodos, ni padre; es una clase vacía. ¿Y para que queremos esta clase si no tiene nada? Podemos usar esta clase cuando necesitamos un objeto genérico al que luego el podremos añadir propiedades. Veamos un ejemplo:

 

 

 

$objecto = new stdClass();
$objeto->sitioWeb = "soyProgramador.liz.xm";
$objeto->tipo "blog";

 

Con este código hemos creado un objeto al que luego le hemos añadido tres atributos. Esto nos puede servir cuando queremos tener un objeto que solo tenga datos y, por la razón que sea, no queremos crear una clase específica.

Otro ejemplo, pero ahora de la vida real, este código pertenece al core de KumbiaPHP:

  
 /**
     * Crea una relacion 1-1 inversa entre dos modelos
     *
     * @param string $relation
     *
     * model : nombre del modelo al que se refiere
     * fk : campo por el cual se relaciona (llave foranea)
     */
    protected function belongs_to($relation)
    {
        $params = Util::getParams(func_get_args());
        for ($i = 0;isset($params[$i]);$i++) {
            $relation = Util::uncamelize($params[$i]);
            if (!array_key_exists($relation, $this->_belongs_to)) {
                $this->_belongs_to[$relation] = new stdClass();
                $this->_belongs_to[$relation]->model = isset($params['model']) ? $params['model'] : $relation;
                $this->_belongs_to[$relation]->fk = isset($params['fk']) ? $params['fk'] : "{$relation}_id";
            }
        }
    }

Leave a Reply

Your email address will not be published. Required fields are marked *