Ver Mensaje Individual
  #26 (permalink)  
Antiguo 08/05/2011, 04:59
Avatar de masterpuppet
masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 8 meses
Puntos: 845
Respuesta: Clave numérica en objeto?

@zerokilled, no se puede hacer de esa forma sobre cualquier objeto, se puede sobre una instancia de stdClass ya que no se puede definir una propiedad numérica en una clase, para hacerlo sobre cualquier objeto hay que hacerlo con un array como propiedad(como en el ejemplo de abimael) + la magia de PHP, algo así:

Código PHP:
Ver original
  1. class Property
  2. {
  3.     protected $_data = array(
  4.         100 => '',
  5.         200 => ''
  6.     );
  7.  
  8.     public function __get($key)
  9.     {
  10.         if(!array_key_exists($key, $this->_data)) {
  11.             throw new OutOfBoundsException();
  12.         }
  13.         return $this->_data[$key];
  14.     }
  15.  
  16.     public function __set($key, $val)
  17.     {
  18.         if(!array_key_exists($key, $this->_data)) {
  19.             throw new OutOfBoundsException();
  20.         }
  21.         $this->_data[$key] = $val;
  22.     }
  23. }
  24.  
  25. $p = new Property();
  26. $p->{100} = '100';
  27. $p->{200} = '200';
  28.  
  29. echo  $p->{100} . PHP_EOL;
  30. echo  $p->{200} . PHP_EOL;

Pero con esto y todo sigue estando mal, el nombre de una propiedad debería estar relacionado con su objetivo y ciertamente 001, 100, 101 o algo parecido no dice nada, que se pueda hacer con workarounds, si, ahora que sea una buena idea, no lo creo.
Lo que comento eints al inicio del thread no es algo que se alla inventado, esta en el manual, este tipo de cosas habría que evitarlas.

@metacortex, el array que representa ? la colección de imágenes o a una imagen ?
__________________
http://es.phptherightway.com/
thats us riders :)