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--