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

Funciones en get y set

Estas en el tema de Funciones en get y set en el foro de Frameworks y PHP orientado a objetos en Foros del Web. ola...espero ke me puedan ayudar. Yo tengo estas dos funciones: 1.- <?php class Datos{ private $nombrehostConsultas; private $nombreusuarioConsultas; private $passusuarioConsultas; private $nombrebdConsultas; //Consntructor function __construct(){ ...
  #1 (permalink)  
Antiguo 25/04/2010, 09:32
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 10 meses
Puntos: 0
Funciones en get y set

ola...espero ke me puedan ayudar.

Yo tengo estas dos funciones:
1.-

<?php

class Datos{
private $nombrehostConsultas;
private $nombreusuarioConsultas;
private $passusuarioConsultas;
private $nombrebdConsultas;

//Consntructor
function __construct(){

}

//Metodos get y set
function getnombrehostConsultas(){
return $this -> nombrehostConsultas = obtenerDatos(1);
//return obtenerDatos(1);
}


function getnombreusuarioConsultas(){
return $this -> nombreusuarioConsultas = obtenerDatos(2);
}


function getpassusuarioConsultas(){
return $this -> passusuarioConsultas = obtenerDatos(3);
}

function getnombrebdConsultas(){
return $this -> nombrebdConsultas = obtenerDatos(4);
}


function obtenerDatos($valor){
$archivo="..\xml\info.xml";

if(file_exists($archivo)) {
$xml = simplexml_load_file($archivo);
if($xml) {
foreach ($xml->dato as $dato) {
if($valor<1 || $valor>4){
echo 'Dato incorrecto';
}
if($valor==1){
return $dato->nombrehost;
}
if($valor==2){
return $dato->nombreusuario;
}
if($valor==3){
return $dato->passusuario;
}
if($valor==4){
return $dato->passusuario;
}
}
} else {
echo "Sintaxis XML invalida";
}
} else {
echo "Error abriendo $archivo";
}

}
?>

La 2da:
<?php
include 'Datos.php';

$a = new Datos();
echo $a ->getnombrehostConsultas();
//echo $a -> obtenerDatos(5);
?>

Bien como ven, yo intento llamar a getnombrehostonsultas() para asi obtener el valor. pero al momento de llamarla en el arhivos datos.php me lanza el error:

atal error: Call to undefined function obtenerdatos() in...

Algo estoy haciendo mal ...ojala puedan ayudarme
  #2 (permalink)  
Antiguo 25/04/2010, 09:47
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 11 meses
Puntos: 89
Respuesta: Funciones en get y set

Solo veo que te falta una llave que cierra a la clase Datos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 25/04/2010, 13:04
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 10 meses
Puntos: 36
Respuesta: Funciones en get y set

- Por favor, cuando coloques código, hazlo con las etiquetas correspondientes para resaltado de sintaxis y así poderlo analizar mejor.
- Haz tu código leíble. Indéntalo adecuadamente realmente es una gran diferencia.
- Lo mismo, coloca el operador de visibilidad a tus métodos, así como con sus propiedades.
- Que mejor si siguieras un estándar de estilización de código (Zend, PEAR son los más populares).

- Tu problema es, como dice el error, querer utilizar una función no definida. Estás dentro de una clase, y ahí defines un método que estará asociado a la instancia del objeto. Nuevamente, así como lo haces con las propiedades, debes utilizar el operador $this para hacer la referencia al método del propio objeto.

- Por último, no es recomendable hacer la asignación y el retorno de un valor en una misma sentencia, se presta a errores y mal-interpretaciones de lectura de código; ¿regresas el resultado de la asignación o el valor de la variable?.


Todo resumido en que es diferente esto:
Código PHP:
Ver original
  1. class Datos{
  2. private $nombrehostConsultas;
  3.  
  4. //Metodos get y set
  5. function getnombrehostConsultas(){
  6. return $this -> nombrehostConsultas = obtenerDatos(1);
  7. //return obtenerDatos(1);
  8. }
  9. }

A esto (sin mencionar los comentarios):
Código PHP:
Ver original
  1. class Datos
  2. {
  3.     private $_nombreHostConsultas;
  4.  
  5.     public function getNombreHostConsultas()
  6.     {
  7.         // Tu error en concreto está aquí
  8.         $this->_nombreHostConsultas = $this->obtenerDatos(1);
  9.  
  10.         return $this->_nombreHostConsultas;
  11.     }
  12. }
__________________
I ♥ The Music!

Última edición por maturano; 25/04/2010 a las 13:12
  #4 (permalink)  
Antiguo 26/04/2010, 09:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Tema movido desde PHP a PHP orientado a objetos
  #5 (permalink)  
Antiguo 26/04/2010, 13:21
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 10 meses
Puntos: 0
De acuerdo Respuesta: Funciones en get y set

Cita:
Iniciado por maturano Ver Mensaje
- Por favor, cuando coloques código, hazlo con las etiquetas correspondientes para resaltado de sintaxis y así poderlo analizar mejor.
- Haz tu código leíble. Indéntalo adecuadamente realmente es una gran diferencia.
- Lo mismo, coloca el operador de visibilidad a tus métodos, así como con sus propiedades.
- Que mejor si siguieras un estándar de estilización de código (Zend, PEAR son los más populares).

- Tu problema es, como dice el error, querer utilizar una función no definida. Estás dentro de una clase, y ahí defines un método que estará asociado a la instancia del objeto. Nuevamente, así como lo haces con las propiedades, debes utilizar el operador $this para hacer la referencia al método del propio objeto.

- Por último, no es recomendable hacer la asignación y el retorno de un valor en una misma sentencia, se presta a errores y mal-interpretaciones de lectura de código; ¿regresas el resultado de la asignación o el valor de la variable?.


Todo resumido en que es diferente esto:
Código PHP:
Ver original
  1. class Datos{
  2. private $nombrehostConsultas;
  3.  
  4. //Metodos get y set
  5. function getnombrehostConsultas(){
  6. return $this -> nombrehostConsultas = obtenerDatos(1);
  7. //return obtenerDatos(1);
  8. }
  9. }

A esto (sin mencionar los comentarios):
Código PHP:
Ver original
  1. class Datos
  2. {
  3.     private $_nombreHostConsultas;
  4.  
  5.     public function getNombreHostConsultas()
  6.     {
  7.         // Tu error en concreto está aquí
  8.         $this->_nombreHostConsultas = $this->obtenerDatos(1);
  9.  
  10.         return $this->_nombreHostConsultas;
  11.     }
  12. }
oks...muxas graxias.Puse asi xq solo copie y pegue mi codigo y salio asi, mas bien pido disculpas...graxias nuevamente y saludos

Etiquetas: funciones, set
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 12:32.