Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

como lo hago??

Estas en el tema de como lo hago?? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. ok, muy bien lo quiero es hacer una clase o funcion en php que llame a un boton y lo valide algo como esto Código ...
  #1 (permalink)  
Antiguo 29/04/2006, 12:30
 
Fecha de Ingreso: abril-2006
Mensajes: 4
Antigüedad: 18 años
Puntos: 0
Pregunta como lo hago??

ok, muy bien lo quiero es hacer una clase o funcion en php que llame a un boton y lo valide algo como esto

Código PHP:
<?
class boton
{
var 
$opc=1;
function 
boton()
{
if( 
$ingreso ){ //esta parte no se como llamarla dentro de una clase o funcion
switch( $ingreso ){ // igual
case "Ingresar" $this->opc 2; break;
}
}
if( 
$this->opc == ) echo"<input type = submit name = ingreso value='Ingresar'";
if( 
$this->opc == ) echo"<input type = submit name = ingreso value='Guardar'";
}
}

//prueba.php
?>
<form method=POST action="<?php echo $PHP_SELF?>">
<input type=text name=campo1 >
<p>&nbsp;</p>
<? $obj = new boton(); ?>
</form>

<?

if ($ingreso == "Guardar"){
echo 
" se ha guardado el registro";
}
if (
$ingreso == "Ingresar"){
echo 
" Va ha insertar un registro";
}
?>
  #2 (permalink)  
Antiguo 30/04/2006, 11:48
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
El método del objeto es como una función en un contexto "estructurado".

Si tienes una clase "Boton" y dentro una función con el mismo nombre, estás diciendo que es un método "contructor" de la clase, es decir, se ejecutará siempre esta "funcion" cuando creemos el objeto (new).

Si quieres recibir el $ingreso, puedes agregar en el constructor este parámetro, o dejar vacío el constructor y agregar un método "accesor/modificador" (getter o setter) del atributo y así evitar que puedan acceder de forma directa a los atributos (concepto de la OO).

¿Se entiende?

Bueno, modifícalo y si tienes dudas, sube el ejemplo nuevo y lo vemos
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #3 (permalink)  
Antiguo 02/05/2006, 16:07
 
Fecha de Ingreso: abril-2006
Mensajes: 4
Antigüedad: 18 años
Puntos: 0
De acuerdo gracias, ....

Bueno, primero que todo gracias, pero realmente no entiendo muy bien como utilizar el metodo accesor/modificador, no tengo realmente mucha informacion sobre este metodo, te agradeceria que me dieras una idea mas clara sobre como resolver el problema con este codigo....
  #4 (permalink)  
Antiguo 02/05/2006, 19:19
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Bueno, entonces deberías leer primero sobre la teoría de la Orientación a Objetos antes de ponerte crear e intentar usar objetos, pues no vas a dar nunca en el clavo.

La idea de los métodos "accesores/modificadores" es evitar que se tenga acceso directo sobre los atributos (o propiedades) desde fuera del objeto. Es decir, el concepto de "encapsulación". Solo expongo una interfaz de lo que quiero que se conozca del objeto, no todo el objeto.

En PHP5 la OO es más robusta, pero por ejemplo en PHP4:

class Boton{
var $valor;
var $nombre = "boton";

function getValor() {return $this->valor};
function setValor($valor) {$this->valor=$valor};

function getNombre() {return $this->nombre};
}

// Uso
$miBoton = new Boton();
$miBoton->setValor(10);

echo "Mi ".$miBoton->getNombre()." vale ahora ".$miBoton->getValor();

Nunca usé el atributo de forma directa, solo dos métodos "accesores/modificadores" (getter/setter) para el valor y uno solo "accesor" para el nombre. Esa es la "interfaz" del objeto; dejo ver lo que quiero que se vea, no más. La razón, esconder los detalles "no necesarios" para que sea más facil de reusar.

Pero no tiene sentido que me ponga a explicarte los conceptos si hay mucho material al respecto:

http://es.wikipedia.org/wiki/Program...tada_a_objetos
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:44.