Re: OOP + funciones heredadas entre funciones
| From: | Alexis Saucedo | 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
>