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

Valor por defecto para uno de los parametros de un metodo

Estas en el tema de Valor por defecto para uno de los parametros de un metodo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Que tal gentes! Bueno mi duda e sla siguiente... tengo una clase que se conecta a BD. Uno de sus metodos hace la conexion al ...
  #1 (permalink)  
Antiguo 17/03/2005, 09:46
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 21 años
Puntos: 13
Valor por defecto para uno de los parametros de un metodo

Que tal gentes!

Bueno mi duda e sla siguiente... tengo una clase que se conecta a BD. Uno de sus metodos hace la conexion al servidor d base de datos (en este caso mysql)...

class db{

var $linkConn;
var $otras...;

function conecta(bla bla bla){
$this->linkConn = mysql_connect(bla bla bla)...
}


Hay un segundo metodo para acceder a una determinada base
function openbase($nombrebase){
mysql_select_db($nombrebase);
}


bueno, la clase (aca solo puse un trozo nomas) permite establecer mas de una conexión de manera simultánea, por lo que en el metodo deberia pasar la coneccion a la que pertenece (osea habria que agregar un segundo parametro a dicho metodo)...

¿Cual es mi duda?... poder darle un valor por defecto al segundo parametro del metodo, y este valor seria el valor de $linkConn (que tiene los datos de la ultima conexion realizada).

Intenté esto (linea 19):

function openbase($nombrebase, $idconn = $this->linkConn){

pero me sale el siguiente error:

Parse error: parse error, unexpected T_VARIABLE in c:\xxx\xxx\xxx\coppermysql\coppermysql.php on line 19

¿Es factible darle ese valor como default?
__________________
El conocimiento es libre: Movimiento por la Devolución
  #2 (permalink)  
Antiguo 17/03/2005, 11:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 6 meses
Puntos: 16
Hola,

Ponle como default un valor no valido, como '' o false. Luego en la primera linea de la funcion miras si el parametro contiene ese valor y si lo tiene le asignas el de la propiedad. Algo como:
Código PHP:
function openbase($nombrebase$idconn false){
  if (
false===$idconn$idconn=$this->linkConn
El unico problema es que si el cliente de la clase pasa como segundo parametro un valor false la funcion no va a detectar el fallo (no se si es un problema o una "caracteristica avanzada" ).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 17/03/2005, 12:00
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 21 años
Puntos: 13
Grazie.... lo tomaré en consideración :D
__________________
El conocimiento es libre: Movimiento por la Devolución
  #4 (permalink)  
Antiguo 17/03/2005, 20:02
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 3 meses
Puntos: 41
Sólo una aclaración sobre el error que te daba y es queel valor por defecto de un parámetro debe ser constante y no una variable:
Código PHP:
function miMetodo($var1$var2=$otra_var)//dará error!
function miMetodo($var1$var2="valor constante")//todo ok! 
Saludos
  #5 (permalink)  
Antiguo 17/03/2005, 20:06
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 21 años
Puntos: 13
He ahí el asunteke jejejje.. gracias jpinedo. En ese caso tendria que recurrir a la solución de Josemi nomás.
__________________
El conocimiento es libre: Movimiento por la Devolución
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 02:43.