[Php-objetos] Ejercicio 1
Andres Manuel
andresmdiaz7 en gmail.com
Jue Feb 19 22:28:34 ARST 2009
Leonardo Tadei - Pegasus Tech Supply escribió:
> Hola Andrés,
>
> El mié, 18-02-2009 a las 22:46 -0200, Andres Manuel escribió:
>
>> Hola leo como estas ???. ya lo sé, estas bien, jajaja
>> Bueno te envio el fuente imcompleto, ya estaria terminada la clase
>> combustible, vehiculos y auto.
>> Pickup y camion van por el mismo camino que auto, pero quiero que me
>> digas si voy bien para no terminar y terminarlo mal.
>>
>
> Viene bien.
> Te cuento unos detalles para mejorarlo:
>
> * Vehículos debería llamarse Vehículo: no es lo mismo muchas cosas que
> una cosa... parece una pavada, pero cuando uno piensa usando una palabra
> incorrecta, piensa en cosas incorrectas y se complica...
>
> * Estás validando tipos con is_string() y is_float(). No hace falta si
> el constructor inicializa los atributos del tipo correcto. Recordá que
> PHP no es tipado, pero sí define tipos con la primer asignación. Además
> el código validado es mucho mejor pero más engorroso de leer... una
> mejor aproximación es definir clases para los tipos primitivos y que el
> método quede por ejemplo: function setTipo(String $tipo=null) para que
> el casting te lo haga el intérprete.
>
Hola Leo estoy intentando como loco hacer, lo tengo definido tal como me
lo pasaste de ejemplo pero no funca.
function setTipo(String $tipo=null)
Pero me tira error, busque el error en la nube, pero no encuentro lo que
necesito sobre el error.
Aqui detallo el error:
*Catchable fatal error*: Argument 1 passed to Auto::setplazas() must be
an instance of string, integer given, called in
C:\wamp\www\ejercicio1\class_auto.php on line 8
> * En esta misma línea quedaría mucho mejor y más claro
> function __construct(Combustible $combustible,$plazas=null,
> $cantRuedas=null,$consumoPorKm=null)
> Así solo podés pasar un Objeto de clase Combustible. Preguntar is_object
> no sirve para nada, porque pasa con _cualquier_ objeto. Además primero
> asignás y despúes levantas la excepción, así que el valor ya queda...
>
> * La importante: si cambio atributos de la instancia $combus, el
> atributo dentro de $auto también cambia. Salvo que lo justifiques de
> buena manera, este comportamiento no es el esperado y la relación entre
> Auto y Combustible está mal definida.
>
>
>> Gracias y Saludos...
>>
>
> Por nada!
>
Más información sobre la lista de distribución Php-objetos