[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