Foros del Web » Programando para Internet » PHP »

por que PHP cree que public $fd = date('d'); es una CONSTANTE ???

Estas en el tema de por que PHP cree que public $fd = date('d'); es una CONSTANTE ??? en el foro de PHP en Foros del Web. Hola, por que PHP cree que construyo una constante? Código PHP:      class  dias  {         public  $fd  =  date ( 'd' );         }  ... solo ...
  #1 (permalink)  
Antiguo 07/01/2017, 10:36
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
por que PHP cree que public $fd = date('d'); es una CONSTANTE ???

Hola, por que PHP cree que construyo una constante?
Código PHP:
    class dias {
        public 
$fd date('d');
        } 
... solo quiero crear el objeto "día"....

La respuesta es: Fatal error: Constant expression contains invalid operations in

Gracias!

Última edición por Anarko; 07/01/2017 a las 10:39 Razón: por que PHP cree que public $fd = date('d'); es una CONSTANTE ???
  #2 (permalink)  
Antiguo 07/01/2017, 11:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: por que PHP cree que public $fd = date('d'); es una CONSTANTE ???

No es que PHP crea que $fd es una constante, lo que te está diciendo es que el valor asignado debe ser una constante, no una función.

Lo correcto es declarar la variable, si es entera en cero, ya en el constructor asignarás el valor adecuado.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/01/2017, 20:22
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: por que PHP cree que public $fd = date('d'); es una CONSTANTE ???

Cita:
Iniciado por Triby Ver Mensaje
No es que PHP crea que $fd es una constante, lo que te está diciendo es que el valor asignado debe ser una constante, no una función.

Lo correcto es declarar la variable, si es entera en cero, ya en el constructor asignarás el valor adecuado.
Triby yo no lo comprendo.

tu sabes bién que "echo date('d')" nos retorna un entero...

Entonces yo no encuentro la función al declarar que X = date('d').

Tén paciencia conmigo plis...

xD
  #4 (permalink)  
Antiguo 08/01/2017, 21:09
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: por que PHP cree que public $fd = date('d'); es una CONSTANTE ???

date() es una funcion, por eso te da problemas.
  #5 (permalink)  
Antiguo 09/01/2017, 03:43
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: por que PHP cree que public $fd = date('d'); es una CONSTANTE ???

Date() si no me equivoco retorna un String, en cualquier caso si quieres que al inicializar el objeto la propiedad $fd tomé el valor de date ('d') puede asignarse en el constructor

Código PHP:
class dias 
    public 
$fd '';

    function 
__construct ( ) { 
    
$this->fd=date('d'); 
    } 


__________________
Unset($vida['malRollo']);
  #6 (permalink)  
Antiguo 09/01/2017, 13:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: por que PHP cree que public $fd = date('d'); es una CONSTANTE ???

Para todas las propiedades de una clase debes definir un valor constante, nunca algo que provenga de una función o variable.

Código PHP:
Ver original
  1. class dias {
  2.    public $var1; // Está bien, aunque es preferible asignarle un valor para establecer el tipo, tampoco es estrictamente necesario
  3.    public $var2 = false; // Ok, es un valor constante
  4.    public $var3 = 1; // Ok, es un valor constante
  5.    public $var4 = 'Una cadena'; // Ok, es un valor constante
  6.  
  7.    public $var5 = $variable; // Esto no está bien
  8.    public $var6 = $this->var1;  // Tampoco está bien, $var1 aún no está inicializada hasta instanciar la clase
  9.    public $var7 = $_SESSION['algo']; // Tampoco funcionará
  10.    public $var8 = funcion(); // Este es tu caso, tampoco va a funcionar
  11.  
  12.     public function __construct() {
  13.           // Aquí es donde asignas el valor de todas las propiedades
  14.     }
  15. }

Si aún no te ha quedado claro, visita: http://php.net/manual/es/language.oop5.properties.php
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 11/01/2017, 10:28
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: por que PHP cree que public $fd = date('d'); es una CONSTANTE ???

Cita:
Iniciado por Triby Ver Mensaje
Para todas las propiedades de una clase debes definir un valor constante, nunca algo que provenga de una función o variable.
Gracias a todos,ahora lo he comprendido.

:)

Etiquetas: objeto, permite, public
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 18:42.