Re: [PHP-ES] OOP + funciones heredadas entre funciones
[email protected] (Alexis Saucedo) Thu, 24 Apr 2014 17:02:53 -0300
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <CAAu=vQefgquDq_gtk2Dp9kjCBsvu7tBsph975zWar_33bQWzfg@mail.gmail.com> |
--20cf30426dba9fab8004f7cf5525 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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 <[email protected]>escribi= =C3=B3: > Alexis, > > mira este ejemplo ejec=C3=BAtalo y ojala te pueda ayudar, formas hay much= as, > esta es una m=C3=A1s en una clase varios elementos que te pueden ayudar. > > adem=C3=A1s te dejo invitado para que visites una p=C3=A1gina web persona= l donde > incluir=C3=A9 desarrollo de aplicaciones y en alg=C3=BAn momento puedes e= ncontrar > algo que te sirva. > > aqu=C3=AD el c=C3=B3digo : me cuentas como te fue, saludos > > <?php > > class myclass{ > > public $host; > public $database; > public $table; > public $query; > private $dba=3D"root"; > private $password =3D"sql"; > > public function sethost($host) > { > $this->host =3D $host; > } > > public function setdb($db) > { > $this->database =3D $db; > } > > public function settable($tbl) > { > $this->table =3D $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 =3D $qry; > } > > > public function getquery() > { > return $this->query; > } > > > } > > $conectando =3D 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 <[email protected]>es= cribi=C3=B3: > > 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 <[email protected]>escr= ibi=C3=B3: >> >>> te dir=C3=ADa que estas confundido ... >>> >>> Class MyClass{ >>> >>> var $prop1; >>> var $prop2 =3D 'prop 2'; >>> >>> public function GetValue($new){ >>> >>> $new =3D $this->prop1; >>> >>> } >>> >>> public function SetValue(){ >>> >>> echo $this->prop2. $new; >>> >>> } >>> } >>> >>> $data =3D new MyClass(); >>> $data->GetValue(PROPIEDAD UNO); >>> $data->SetValue(); >>> >>> >>> >>> 1.- creas el objeto >>> 2.- env=C3=ADas un dato PROPIEDAD UNO ( yo lo enviar=C3=ADa como cadena= ) >>> 3.- si envias una cadena para getvalue a travez de $new no sirve de nad= a >>> 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=C3= =A1 como >>> no definida >>> >>> es mi modesta opini=C3=B3n >>> Saludos >>> >>> >>> >>> El 24 de abril de 2014, 14:22, Alexis Saucedo <[email protected]>= escribi=C3=B3: >>> >>> gracias por responder Mauricio y si quisiera hacer algo asi?: >>>> >>>> Class MyClass{ >>>> >>>> var $prop1; >>>> var $prop2 =3D 'prop 2'; >>>> >>>> public function GetValue($new){ >>>> >>>> $new =3D $this->prop1; >>>> >>>> } >>>> >>>> public function SetValue(){ >>>> >>>> echo $this->prop2. $new; >>>> >>>> } >>>> } >>>> >>>> $data =3D new MyClass(); >>>> $data->GetValue(PROPIEDAD UNO); >>>> $data->SetValue(); >>>> >>>> Saludos! >>>> >>>> >>>> El 24 de abril de 2014, 15:10, Mauricio Tapia <[email protected]>es= cribi=C3=B3: >>>> >>>>> Hola >>>>> >>>>> El script de ejemplo me funciona, creo que debes corregir a mi parece= r >>>>> 2 puntos que te faltan. >>>>> >>>>> en la l=C3=ADnea >>>>> >>>>> echo "valor de funcion 1" $this->op1; >>>>> >>>>> agrega un punto que falta >>>>> >>>>> echo "valor de funcion 1 ".$this->op1; >>>>> >>>>> en la funci=C3=B3n GetValue lo mismo antes del $this agrega un . >>>>> >>>>> Saludos >>>>> Mauricio Tapia >>>>> atacamaworkbench.com >>>>> >>>>> >>>>> >>>>> El 24 de abril de 2014, 12:47, Alexis Saucedo <[email protected]= m >>>>> > escribi=C3=B3: >>>>> >>>>> 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 =3D 'algo'; >>>>>> var $op2 =3D '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 =3D 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 =3D 'localhost'; >>>>>> var $user =3D 'usuario'; >>>>>> var $pass =3D 'contrase=C3=B1a'; >>>>>> var $database =3D 'base de datos'; >>>>>> var $tabla; >>>>>> var $fila; >>>>>> >>>>>> Public Function ConectarDb($db){ >>>>>> >>>>>> $this->database =3D $db; >>>>>> >>>>>> mysql_connect("$this->host", "$this->user", "this->pass"); >>>>>> mysql_selectdb("$db"); >>>>>> >>>>>> } >>>>>> >>>>>> public function SetValue($table, $file){ >>>>>> >>>>>> $this->tabla =3D $table; >>>>>> $this->fila =3D $file; >>>>>> >>>>>> $query =3D mysql_query("SELECT $table FROM $this->database"); >>>>>> if($row=3Dmysql_fetch_array()){ >>>>>> echo $row[$file]; >>>>>> } >>>>>> } >>>>>> >>>>>> } >>>>>> >>>>>> $data =3D 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, >>>>>> =C2=BFalguno 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 > --20cf30426dba9fab8004f7cf5525--