2010-05-17 33 views

Respuesta

55

Bueno, la forma general de añadir propiedades arbitrarias a un objeto es:

$object->attributename = value; 

se puede, mucho más limpio, pre-definir los atributos de su clase (PHP 5+ específica, en PHP 4 se utilizaría el viejo var $attributename)

class baseclass 
{ 

    public $attributename; // can be set from outside 

    private $attributename; // can be set only from within this specific class 

    protected $attributename; // can be set only from within this class and 
          // inherited classes 

esto es muy recomendable, porque también se puede documentar las propiedades en su definición de clase.

También puede definir getter and setter methods que recibe una llamada cada vez que intenta modificar la propiedad de un objeto.

0

esta es una clase estática pero, el mismo principio sería para una intantada también. esto le permite almacenar y recuperar lo que quiera de esta clase. y arroja un error si intentas obtener algo que no está configurado.

class Settings{ 
    protected static $_values = array(); 

public static function write($varName, $val){ 
    self::$_values[ $varName ] = $val; 
} 
public static function read($varName){ 

    if(!isset(self::$_values[ $varName ])){ 
     throw new Exception($varName . ' does not exist in Settings'); 
    } 

    return self::$_values[ $varName ]; 
} 
} 
Cuestiones relacionadas