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

Parámetros por defecto dentro de clases

Estas en el tema de Parámetros por defecto dentro de clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola: tengo la siguiente clase Código PHP: class  Miclase { var  $defecto = "loquesea" ;  //Quiero usarlo como texto por defecto      function  mifuncion ( $par1 , $par2 , $opcional ...
  #1 (permalink)  
Antiguo 21/04/2010, 09:37
 
Fecha de Ingreso: marzo-2008
Mensajes: 96
Antigüedad: 16 años, 8 meses
Puntos: 0
Parámetros por defecto dentro de clases

Hola:

tengo la siguiente clase

Código PHP:
class Miclase{

var 
$defecto="loquesea"//Quiero usarlo como texto por defecto

    
function mifuncion($par1,$par2,$opcional=$this->defecto)
    {
        
//Ejecuta la función...
    
}
}

$iniciar = new Miclase(); 
Quiero usar un parámetro por defecto en la llamada de una funcion, especificado al principio de la clase. Pero me da error en: $opcional=$this->defecto

Código:
Parse error: syntax error, unexpected T_VARIABLE in...
¿Cómo puedo hacer que funcione?
  #2 (permalink)  
Antiguo 21/04/2010, 09:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Parámetros por defecto dentro de clases

Código PHP:
Ver original
  1. class foo {
  2.          private $_default = "default";
  3.    
  4.          public function baz($bar, $foo=null)
  5.          {
  6.                 if ($foo == null) {
  7.                        $foo = $this->_default;
  8.                 }
  9.  
  10.                 //...
  11.          }
  12. }

Saludos.
  #3 (permalink)  
Antiguo 21/04/2010, 09:59
 
Fecha de Ingreso: marzo-2008
Mensajes: 96
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Parámetros por defecto dentro de clases

Es decir... que cuando usas clases hay que usar los parámetros por defecto al "estilo JavaScript" y no al "estilo Php"??

Gracias, majo ;)
  #4 (permalink)  
Antiguo 21/04/2010, 10:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Parámetros por defecto dentro de clases

No, lo que pasa es que las variables que puedes pasar como parámetros por defecto, deben de ser del tipo nativo de PHP, es decir strings, ints, floats, etc.

No puedes definir un tipo complejo (en este caso una clase) como valor por defecto de una función (esto aplica uses OOP o no).

Por ejemplo usando variables simples y complejas:
Código PHP:
Ver original
  1. class foo {
  2.          private $_default = "default";
  3.  
  4.          public function baz($bar, $foo=null, $baz='hello')
  5.          {
  6.                 if ($foo == null) {
  7.                      $foo = $this->_default;
  8.                 }
  9.  
  10.                 //...
  11.          }
  12. }

Es como si quisieras hacer esto:
Código PHP:
Ver original
  1. function foo($link = mysql_connect('root')) {
  2.  
  3. }

Esperando que si no le pasas $link, se hiciera uno por defecto.

Saludos.
  #5 (permalink)  
Antiguo 22/04/2010, 04:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 96
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Parámetros por defecto dentro de clases

Entiendo :)

Gracias por responder, tengo más preguntas en otro post, jejeje.
http://www.forosdelweb.com/f68/llama...-clase-799833/

Etiquetas: clases, defecto
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 20:29.