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

instanciar una clase externa con php

Estas en el tema de instanciar una clase externa con php en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola, estoy empezando con php orientado a objetos y me ha surgido una duda que no consigo resolver, tengo el siguiente archivo: Código: <?php include("config.php"); ...
  #1 (permalink)  
Antiguo 14/12/2012, 14:39
 
Fecha de Ingreso: diciembre-2008
Mensajes: 14
Antigüedad: 15 años, 7 meses
Puntos: 0
instanciar una clase externa con php

hola, estoy empezando con php orientado a objetos y me ha surgido una duda que no consigo resolver, tengo el siguiente archivo:

Código:
<?php
	include("config.php");
	//instanciamos la clase config.php
	$sql = new conectarMySQL("localhost","root","root","cocina");
	
	class usuario{
		//variables
		var $nombre;
		var $pass;
		
		//constructor
		function usuario($user,$pass){
			$this->nombre = $user;
			$this->pass = $pass;
		}
		
		//metodos
		function comprobar(){
			$sql->conectar();
		}
	}
	
	//ejecutamos la clase
	$usuario = new usuario("pepe","123");
	$usuario->comprobar();
?>
el caso es que al ejecutar el método comprobar(), me da el siguiente error:

Código:
Fatal error: Call to a member function conectar() on a non-object in 
C:\AppServ\www\cocina\usuario.php on line 19
la linea 19 es

Código:
$sql->conectar();
me temo que es porque no he instanciado la clase "conectarMySQL" correctamente, pero no consigo instanciarla de ninguna otra forma sin que me dé error.

Gracias y un saludo.
  #2 (permalink)  
Antiguo 14/12/2012, 14:50
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años
Puntos: 793
Respuesta: instanciar una clase externa con php

La variable $sql no se puede acceder porque está fuera de la clase y por eso te da error. Te interesa entender el ámbito de las variables antes de seguir con POO.

Si activas los errores de tipo notice recibirías un error de tipo:

Cita:
Notice: Undefined variable: sql
Prueba colocando $sql en comprobar para que veas la diferencia.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 14/12/2012 a las 15:05
  #3 (permalink)  
Antiguo 14/12/2012, 17:08
 
Fecha de Ingreso: diciembre-2008
Mensajes: 14
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: instanciar una clase externa con php

Cita:
Iniciado por andresdzphp Ver Mensaje
La variable $sql no se puede acceder porque está fuera de la clase y por eso te da error. Te interesa entender el [URL="http://php.net/manual/es/language.variables.scope.php"]ámbito de las variables[/URL] antes de seguir con POO.

Si activas los errores de tipo notice recibirías un error de tipo:



Prueba colocando $sql en comprobar para que veas la diferencia.

Saludos.
vale, ahora funciona, pero yo lo que quería hacer era declararla como variable publica para que al declararla arriba del todo ya la pueda usar en todos los métodos de la clase. En java se hace de la siguiente forma:

Código:
public static conexion = new conexion();
y ya la clase se instancia como "conexion" y la puedo utilizar en cualquier metodo de esa clase. Probé poniendo "public static" delante de la variable "$sql" pero no sirvió. ¿Sabrías decirme si puedo hacer esto con PHP POO?

un saludo y gracias

Etiquetas: clase, externa, instanciar, php, usuarios
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 15:32.