Re: OOP + funciones heredadas entre funciones

From: Date: Thu, 24 Apr 2014 20:02:53 +0000
Subject: Re: OOP + funciones heredadas entre funciones
References: 1 2 3 4 5 6  Groups: php.general.es 
Request: Send a blank email to general-es+get-65657@lists.php.net to get a copy of this message
un millon de gracias por tu tiempo mauricio ahora mismo me pongo a seguir tu cadena. Un saludo! El 24 de abril de 2014, 16:49, Mauricio Tapia <mj.tapia.o@gmail.com>escribió: > Alexis, > > mira este ejemplo ejecútalo y ojala te pueda ayudar, formas hay muchas, > esta es una más en una clase varios elementos que te pueden ayudar. > > además te dejo invitado para que visites una página web personal donde > incluiré desarrollo de aplicaciones y en algún momento puedes encontrar > algo que te sirva. > > aquí el código : me cuentas como te fue, saludos > > <?php > > class myclass{ > > public $host; > public $database; > public $table; > public $query; > private $dba="root"; > private $password ="sql"; > > public function sethost($host) > { > $this->host = $host; > } > > public function setdb($db) > { > $this->database = $db; > } > > public function settable($tbl) > { > $this->table = $tbl; > } > > public function conectar() > { > // puede ser la rutina para mysql_connect > return "Conectando a : > > ".$this->host."/".$this->database."/".$this->table."<br>"; > } > > public function setquery($qry) > { > // ejecutar query > $this->query = $qry; > } > > > public function getquery() > { > return $this->query; > } > > > } > > $conectando = new myclass(); > $conectando->sethost('192.168.50.70'); > $conectando->setdb('basecorporativa'); > $conectando->settable('materiales'); > $conectando->setquery('Select * from materiales;'); > echo $conectando->conectar(); > echo $conectando->getquery(); > echo "<br>1.- estoy usando la tabla ".strtoupper($conectando->table); > echo "<br>2.- estoy usando host ".strtoupper($conectando->host); > echo "<br>3.- estoy usando database ".strtoupper($conectando->database); > echo "<br>4.- query ".strtoupper($conectando->query); > > // da error los atributos declarados como privados de la clase > echo "<br>5.- dba ".strtoupper($conectando->dba); > echo "<br>6.- password ".strtoupper($conectando->password); > // etc etc > > > > ?> > > > > > > > > > > > > > > El 24 de abril de 2014, 15:22, Alexis Saucedo <alexissaucedo@gmail.com>escribió: > > Podrias por favor darme un ejemplo de esto Mauricio si no fuera molestia? >> no comprendo como anviarlo por cadena. >> >> Saludos y gracias! >> >> >> El 24 de abril de 2014, 15:40, Mauricio Tapia <mj.tapia.o@gmail.com>escribió: >> >>> te diría que estas confundido ... >>> >>> Class MyClass{ >>> >>> var $prop1; >>> var $prop2 = 'prop 2'; >>> >>> public function GetValue($new){ >>> >>> $new = $this->prop1; >>> >>> } >>> >>> public function SetValue(){ >>> >>> echo $this->prop2. $new; >>> >>> } >>> } >>> >>> $data = new MyClass(); >>> $data->GetValue(PROPIEDAD UNO); >>> $data->SetValue(); >>> >>> >>> >>> 1.- creas el objeto >>> 2.- envías un dato PROPIEDAD UNO ( yo lo enviaría como cadena) >>> 3.- si envias una cadena para getvalue a travez de $new no sirve de nada >>> debido a que luego $new le asignas otro valor en ese caso prop1 que es nada. >>> 4.- por lo mimo el evento setvalue te dara error ya que $new estará como >>> no definida >>> >>> es mi modesta opinión >>> Saludos >>> >>> >>> >>> El 24 de abril de 2014, 14:22, Alexis Saucedo <alexissaucedo@gmail.com>escribió: >>> >>> gracias por responder Mauricio y si quisiera hacer algo asi?: >>>> >>>> Class MyClass{ >>>> >>>> var $prop1; >>>> var $prop2 = 'prop 2'; >>>> >>>> public function GetValue($new){ >>>> >>>> $new = $this->prop1; >>>> >>>> } >>>> >>>> public function SetValue(){ >>>> >>>> echo $this->prop2. $new; >>>> >>>> } >>>> } >>>> >>>> $data = new MyClass(); >>>> $data->GetValue(PROPIEDAD UNO); >>>> $data->SetValue(); >>>> >>>> Saludos! >>>> >>>> >>>> El 24 de abril de 2014, 15:10, Mauricio Tapia >>>> <mj.tapia.o@gmail.com>escribió: >>>> >>>>> Hola >>>>> >>>>> El script de ejemplo me funciona, creo que debes corregir a mi parecer >>>>> 2 puntos que te faltan. >>>>> >>>>> en la línea >>>>> >>>>> echo "valor de funcion 1" $this->op1; >>>>> >>>>> agrega un punto que falta >>>>> >>>>> echo "valor de funcion 1 ".$this->op1; >>>>> >>>>> en la función GetValue lo mismo antes del $this agrega un . >>>>> >>>>> Saludos >>>>> Mauricio Tapia >>>>> atacamaworkbench.com >>>>> >>>>> >>>>> >>>>> El 24 de abril de 2014, 12:47, Alexis Saucedo <alexissaucedo@gmail.com >>>>> > escribió: >>>>> >>>>> Buenas tardes estoy con un dilema y se que lo estoy haciendo mal pero >>>>>> aun >>>>>> no le encuentro la vuelta haber si me pueden dar una mano, en primer >>>>>> lugar >>>>>> necesito crear una clase dinamica por la cual cuando invoque las >>>>>> propiedades pueda llamar a una funcion. Intente en primer lugar >>>>>> llamar una >>>>>> propiedad dentro de una clase desde otra, quise hacer algo asi (lo >>>>>> estoy >>>>>> haciendo de memoria perdon si hay algun error): >>>>>> >>>>>> Class MyClass{ >>>>>> >>>>>> var $op1 = 'algo'; >>>>>> var $op2 = 'algo2'; >>>>>> >>>>>> public function SetValue(){ >>>>>> >>>>>> echo "valor de funcion 1" $this->op1; >>>>>> >>>>>> } >>>>>> >>>>>> public function GetValue(){ >>>>>> >>>>>> echo "esto es function GetValue" $this->op2 ."y esto es >>>>>> SetValue" >>>>>> $this->op1; >>>>>> >>>>>> } >>>>>> >>>>>> } >>>>>> >>>>>> $data = new MyClass(); >>>>>> $data->SetValue(); >>>>>> $data->GetValue(); >>>>>> >>>>>> esto no me arrojo ningun resultado, esto lo hice por que a lo que >>>>>> quiero >>>>>> aplicar es a algo asi: >>>>>> >>>>>> Class ConectClass{ >>>>>> >>>>>> var $host = 'localhost'; >>>>>> var $user = 'usuario'; >>>>>> var $pass = 'contraseña'; >>>>>> var $database = 'base de datos'; >>>>>> var $tabla; >>>>>> var $fila; >>>>>> >>>>>> Public Function ConectarDb($db){ >>>>>> >>>>>> $this->database = $db; >>>>>> >>>>>> mysql_connect("$this->host", "$this->user", >>>>>> "this->pass"); >>>>>> mysql_selectdb("$db"); >>>>>> >>>>>> } >>>>>> >>>>>> public function SetValue($table, $file){ >>>>>> >>>>>> $this->tabla = $table; >>>>>> $this->fila = $file; >>>>>> >>>>>> $query = mysql_query("SELECT $table FROM $this->database"); >>>>>> if($row=mysql_fetch_array()){ >>>>>> echo $row[$file]; >>>>>> } >>>>>> } >>>>>> >>>>>> } >>>>>> >>>>>> $data = new ConectClass(); >>>>>> $data->ConectClass(nombre de la base de datos); >>>>>> $data->ConectClass(nombre de la tabla); >>>>>> $data->ConectClass(nombre de la fila); >>>>>> >>>>>> mi idea es poder instanciar los objetos y agregar los campos, se que >>>>>> en >>>>>> este ultimo no lo etsoy haciendo correcto, solo me imagine que asi >>>>>> podria >>>>>> llegar a realizarlo, la idea es que se pueda entender mi punto, >>>>>> ¿alguno me >>>>>> podria desenredar esto?. >>>>>> >>>>>> Saludos y muchas gracias! >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Atentamente >>>>> Mauricio Tapia Ortega >>>>> *atacamaworkbench.com >>>>> <http://www.atacamaworkbench.com>* >>>>> Skype : atacamaworkbench >>>>> >>>> >>>> >>> >>> >>> -- >>> Atentamente >>> Mauricio Tapia Ortega >>> *atacamaworkbench.com >>> <http://www.atacamaworkbench.com>* >>> Skype : atacamaworkbench >>> >> >> > > > -- > Atentamente > Mauricio Tapia Ortega > *atacamaworkbench.com <http://www.atacamaworkbench.com>* > Skype : atacamaworkbench >

« previous php.general.es (#65657) next »