Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/03/2011, 17:51
Avatar de Copia
Copia
 
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: duda básica de POO PHP..

hola nuevamente, tengo un problema ahora que creo que mas que duda es un error que no logro identificar.
Intento aplicar una interfaz.
class.Door.php
Código PHP:
Ver original
  1. <?php
  2. require_once('interface.Opener.php');
  3.  
  4. class Door implements Openable{
  5.     private $_locked = false;
  6.  
  7.     public function open(){
  8.         if($this->_locked){
  9.             print "No se puede abrir la puerta. Esta bloqueado";
  10.         }else{
  11.             print "Sonido de Abrir";
  12.         }
  13.     }
  14.  
  15.     public function close(){
  16.         print "Sonido de Cerrar<br>";
  17.     }
  18.  
  19.     public function lockDoor(){
  20.         $this->_locked = true;
  21.     }
  22.  
  23.     public function unlockDoor(){
  24.         $this->_locked = false;
  25.     }
  26. }

class.Jar.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once('interface.Opener.php');
  4.  
  5. class Jar implements Openable{
  6.  
  7.     private $contents;
  8.  
  9.     public function __construct($contents){
  10.         $this->contents = $contents;
  11.     }
  12.  
  13.     public function open(){        
  14.         print "El Frasco esta abierto ahora";
  15.     }
  16.  
  17.     public function close(){
  18.         print "El Frasco esta ahora cerrado";
  19.     }
  20. }

interface.Openable.php
Código PHP:
Ver original
  1. <?php
  2. interface Openable{
  3. abstract  function open();
  4. abstract function close();
  5. }
  6. ?>
y cuando ejecuto el test, no muestra lo que creo que mostraria(mensajes del método open).
archivo test.Openable.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once('class.Door.php');
  4. require_once('class.Jar.php');
  5.  
  6. function openSomething(Openable $obj){
  7.     $obj->open();
  8. }
  9.  
  10.  
  11. $objDoor = new Door();
  12. $objJar = new Jar('Hola');
  13. $openSomething($objDoor);
  14. $openSomething($objJar);
  15.  
  16. ?>

Todos los archivos están en el mismo directorio.
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com