Cita:
Iniciado por mcun lo de la redundancia echo return es solo para mi prueba se me paso....
Cuidado con ello, igual busca mejores maneras de hacer pruebas ... tan simple como el hecho de imprimir el valor retornado, que es lo que te interesa saber; total, es exactamente el mismo valor.
Cita:
Iniciado por mcun lo del mail si definitivamente debería llamar a un clase para ello o hacerlo de forma inversa mmm tal vez heredar de esta clase desde una case mail.......
¿Herencia?; ERROR.
La programación orientada a objetos no es solo la utilización de clases. No pienses en tu código, en tu algoritmo, en una clase para lograr tu objetivo como ahora lo haces. Tienes que leer los conceptos, básico ...
Cita:
Iniciado por mcun que doy por echo que existen x sistemas operativos y x navegadores .... te refieres a que no los liste todos o que debería tratarlos de modo mas abstracto
Código como este:
Código PHP:
Ver originalpublic function get_so_v(){
if (@strpos($this->user_agent_conv_so, $this->so[0]) !== false){ $so= "linux";
}
if (@strpos($this->user_agent_conv_so, $this->so[1]) !== false){ $so= "windows";
}
echo $so;
return $so;
}// end functionget_so_v
Tema aparte de tu metodología (que igual habría que comentar), lo único que haces es comparar si un valor obtenido para el SO es "linux" o "windows". Viéndolo como código, en el caso que ninguna de las condiciones se cumpla tienes una variable no definida --error--, viéndolo como función de una clase, ese método no cumple su función de decirme qué SO se está utilizando, solo me dice si es Windows o Linux; ¿es esta tu intención?, entonces no crees que sería mejor crear métodos
isWindows() e
isLinux() que te retornen un booleano?.
Y no es solo caso de añadir "Mac" a tu lista, menos ahora con tanto "gadget" que sale a cada rato; Android --y variantes--, Moblin, Symbian, Palm OS, iPhone OS, Darwin, BSD, etc., etc., etc. ... no vas a enlistar todos los SOs, ¿o sí?
Cita:
Iniciado por mcun y destructor ( no entiendo por que no destruye nada)
De nuevo: tu destructor está eliminando
variables locales a ese método, variables que
no están definidas, por ende, no está haciendo nada.
Sigue tu propia metodología e imprime esas variables antes de eliminarlas ...
Además, si se destruye un objeto se va con todo y sus propiedades. Si tu intención es limpiar las propiedades del objeto --que así se entiende--, no tiene ningún caso. De nuevo, conceptos ...
Mi sugerencia:
Ve la función que te dejó GatorV, extrae toda la información que puedas o necesites, todo dentro del constructor y seteando a variables privadas por cada dato, luego entonces, solo necesitas getters para los valores que vayas a necesitas o métodos propios que puedan corresponder a tu objeto, como quizá un
esLinux() como mencioné, quizá un
esDispositivoMovil() que quizá podría interesar a quien utilize tu clase ... etc. etc. etc.
Saludos