en estos casos para poder usar los metodos de otra clase se pueden hacer tanto con herencia o enviando un parametro Object1 al constructor de otra clase Object2 y se conseguiria el mismo efecto o sino usando el operador de resolucion.
Entonces cual usar y cuando y como puedo representarlo como diagrama UML osea Asociacion (por direccion y cardinalidad), agregacion y composicion?
primer caso:1 Código PHP:
class Obj1{
function getVal() { ... }
}
class Obj2{
var $obj1;
function __construct(&$obj1) { $this->obj1=&$obj1; }
function doVal () { $this->obj1->getVal(); }
}
$obj1=new Obj1;
$obj2=new Obj2($obj1);
//ejecuta getVal() de Obj1 similar efecto ha hacer Obj1 extend Obj2 Código PHP:
$obj2->doVal ();
Segundo caso:2 Código PHP:
class Obj1{
mostrar(){ ... }
}
class Obj2{
var $obj1;
var $content;
function __construct() { $this->obj1=new Obj1; }
function setMostrar() { $this->content=$this->obj1->mostrar(); }
}
//en este caso var $content de Obj2 ahora podra usar el metodo de Obj1 Tercer Caso:3 Código PHP:
class Revisar{
function ver() { echo ($this->error); }
}
class Setup{
var $errMsj='Mensaje Error';
function verErr() {
if ( DEBUG == 1 ) { Revisar::ver(); }
}
}
define ('DEBUG',1);
$setup= &new Setup;
$setup->verErr();
//En este caso el operador de resolucion tmb hace casi la misma idea de los
//ejm anteriores solo q el metodo ver() es llamado pero recibe el parametro
//$errMsj de la otra clase(Setup)
Espero me pueden quitar estas dudas... al respecto.. y que implca usar el simbolo & en las clases (por ejm en: $setup= &new Setup; o en: function __construct(&$obj1) { ...} espero sus respuestas... Saludos... desde Peru.. de antemano gracias..... )