Diferencia entre revisiones de «Usuario:Lmorillas/desarrollo web servidor/php/clases»
De WikiEducator
(Página creada con '{{MiTitulo|Clases y Objetos}} {{TEP}} {{Objetivo| * http://php.net/manual/es/language.oop5.php |Title=Documentación |TOCdepth=2}} {{Objetivo| * http://www.php.net/manual/es/…') |
|||
Línea 4: | Línea 4: | ||
{{Objetivo| | {{Objetivo| | ||
* http://php.net/manual/es/language.oop5.php | * http://php.net/manual/es/language.oop5.php | ||
− | + | * http://www.phpya.com.ar/poo/ | |
|Title=Documentación | |Title=Documentación | ||
|TOCdepth=2}} | |TOCdepth=2}} |
Revisión de 21:00 3 feb 2014
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Documentación
Ejemplos
Ejemplo con closures
http://es1.php.net/manual/es/functions.anonymous.php#example-168
<?php // Un carro de compras básico que contiene una lista de productos añadidos // y la cantidad de cada producto. Incluye un método que // calcula el precio total de los artículos del carro usando una // clausura como llamada de retorno. class Carro { const PRECIO_MANTEQUILLA = 1.00; const PRECIO_LECHE = 3.00; const PRECIO_HUEVOS = 6.95; protected $productos = array(); public function añadir($producto, $cantidad) { $this->productos[$producto] = $cantidad; } public function obtenerCantidad($producto) { return isset($this->productos[$producto]) ? $this->productos[$producto] : FALSE; } public function obtenerTotal($impuesto) { $total = 0.00; $llamadaDeRetorno = function ($cantidad, $producto) use ($impuesto, &$total) { $precioUnidad = constant(__CLASS__ . "::PRECIO_" . strtoupper($producto)); $total += ($precioUnidad * $cantidad) * ($impuesto + 1.0); }; array_walk($this->productos, $llamadaDeRetorno); return round($total, 2); } } $mi_carro = new Carro; // Añadir algunos artículos al carro $mi_carro->añadir('mantequilla', 1); $mi_carro->añadir('leche', 3); $mi_carro->añadir('huevos', 6); // Imprimir el total con un impuesto de venta del 5%. print $mi_carro->obtenerTotal(0.05) . "\n"; // El resultado es 54.29 ?>