Diferencia entre revisiones de «Plantilla:PHP/SintasixPHPOOP»
De WikiEducator
Línea 301: | Línea 301: | ||
===Acceso al contenido del objeto : <span style="color: green; font-size:150%;">-></span> y <span style="color: green; font-size:150%;">::</span>=== | ===Acceso al contenido del objeto : <span style="color: green; font-size:150%;">-></span> y <span style="color: green; font-size:150%;">::</span>=== | ||
*Ya hemos visto que para acceder a un elemento de un objeto usamos operadores '''''->''''' o bien '''''::''''' | *Ya hemos visto que para acceder a un elemento de un objeto usamos operadores '''''->''''' o bien '''''::''''' | ||
− | ;Operador de indirección -> | + | ;Operador de indirección <span style="color: green; font-size:150%;">-></span> |
*Este operador es un operador de indirección | *Este operador es un operador de indirección | ||
*Los objetos son direcciones de memoria, cuando se quiere acceder al contenido de una dirección de memoria se usa un operador de '''indirección''', que en el caso de php como en otros muchos lenguajes es '''''-> '''''. | *Los objetos son direcciones de memoria, cuando se quiere acceder al contenido de una dirección de memoria se usa un operador de '''indirección''', que en el caso de php como en otros muchos lenguajes es '''''-> '''''. | ||
Línea 318: | Línea 318: | ||
... | ... | ||
</source> | </source> | ||
− | ;Operador de resolución de ámbito :: | + | ;Operador de resolución de ámbito <span style="color: green; font-size:150%;"><nowiki>::</nowiki></span> |
*http://php.net/manual/es/language.oop5.paamayim-nekudotayim.php | *http://php.net/manual/es/language.oop5.paamayim-nekudotayim.php | ||
Línea 470: | Línea 470: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | {{MRM_Ejemplo|Title=Usando constructores}} | ||
+ | <source lang=php> | ||
+ | class Clase1 { | ||
+ | //put your code here | ||
+ | |||
+ | public function Clase1($m){ | ||
+ | echo "Estoy en constructor de Clase1, métdo Clase1, y he recibido el paŕametro <strong>$m</strong>"; | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | $obj1 = new Clase1("Mensaje pasado al constructor "); | ||
+ | |||
+ | |||
+ | <source> | ||
+ | *La salida de este código | ||
+ | Estoy en constructor de Clase1, métdo Clase1, y he recibido el paŕametro Mensaje pasado al constructor | ||
+ | **Alternativamente de forma más correcta establecemos el constructor con el método mágico '''''__construct()''''' | ||
+ | <source lang=php> | ||
+ | |||
+ | </source> | ||
+ | <source lang=php> | ||
+ | class Clase1 { | ||
+ | //put your code here | ||
+ | |||
+ | public function __construct($m){ | ||
+ | echo "Estoy en constructor de Clase1, métdo __construct, y he recibido el paŕametro <strong>$m</strong>"; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | $obj1 = new Clase1("Mensaje pasado al constructor "); | ||
+ | ?> | ||
+ | </source> | ||
+ | *La salida del código anterior | ||
+ | Estoy en constructor de Clase1, métdo __construct, y he recibido el paŕametro Mensaje pasado al constructor | ||
+ | {{Tip|El constructor puede recibir parámetros que son pasados al crear la instancia del objeto con el operador ''''new''''}} | ||
+ | }} | ||
+ | *En caso de tener los dós métodos, se ejecuta '''''solamente''''' el código del método '''''__construct()''''' | ||
Línea 482: | Línea 522: | ||
http://php.net/manual/es/language.oop5.magic.php | http://php.net/manual/es/language.oop5.magic.php | ||
</div> | </div> | ||
+ | *Otro ejemplo importante son los métodos __toString() y __call($function, $paramters) | ||
+ | {{MRM_EjemploTitle=__toString()| | ||
+ | *Este método es invocado si queremos convertir el objeto en un string | ||
+ | *No recibe parámetros , pues no se invoca de forma explícita | ||
+ | *Lo correcto es que retorne un string | ||
+ | <source lang=php> | ||
+ | class Racional { | ||
+ | //put your code here | ||
+ | private $num; | ||
+ | private $den; | ||
+ | |||
+ | public function __construct($num, $den){ | ||
+ | $this->num = $num; | ||
+ | $this->den = $den; | ||
+ | } | ||
+ | public function __toString(){ | ||
+ | return ($this->num/$this->den); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | $r1 = new Racional (8,5); | ||
+ | echo "Valor del objeto r1 = $r1"; | ||
+ | ?> | ||
+ | </source> | ||
+ | *La salida de este código | ||
+ | Valor del objeto r1 = 8/5 | ||
+ | }} | ||
+ | |||
+ | |||
<div class="slide"> | <div class="slide"> | ||
{{MRM_Actividad| | {{MRM_Actividad| |
Revisión de 01:32 1 dic 2016
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |