[PHP] Variable/Fonction dans un Array
colderis
Messages postés
3
Statut
Membre
-
colderis Messages postés 3 Statut Membre -
colderis Messages postés 3 Statut Membre -
Salut, je développe actuellement un site sous cakePHP et je rencontre d'étranges erreurs dans une class de mon Model.
Il m'est impossible d'insérer de variable ou même de fonction dans un tableau associatif.
L'erreur vient bien de php et non de cake.
Voici le morceau de code concerné :
Cela me renvoie : "Parse error: syntax error, unexpected '(', expecting ')' on line 38".
Si je remplace la fonction par une variable : "Parse error: syntax error, unexpected T_VARIABLE on line 38".
Je ne me souviens pas avoir déjà rencontré de telle erreur lorsque j'utilisais des variables ou autre dans un tableau c'est pourquoi je suis étonné et bloquer.
Le problème ne semble pas venir d'ailleurs le code fonctionne très bien si j'utilise une chaine de caractère.
Je tourne sous MAMP qui utilise php 5.3.6.
Il m'est impossible d'insérer de variable ou même de fonction dans un tableau associatif.
L'erreur vient bien de php et non de cake.
Voici le morceau de code concerné :
public $actsAs = array(
'MeioUpload.MeioUpload' => array(
'file' => array(
'uploadName' => uniqid(),
),
),
);
Cela me renvoie : "Parse error: syntax error, unexpected '(', expecting ')' on line 38".
Si je remplace la fonction par une variable : "Parse error: syntax error, unexpected T_VARIABLE on line 38".
Je ne me souviens pas avoir déjà rencontré de telle erreur lorsque j'utilisais des variables ou autre dans un tableau c'est pourquoi je suis étonné et bloquer.
Le problème ne semble pas venir d'ailleurs le code fonctionne très bien si j'utilise une chaine de caractère.
Je tourne sous MAMP qui utilise php 5.3.6.
A voir également:
- [PHP] Variable/Fonction dans un Array
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction miroir - Guide
- Expert php pinterest - Télécharger - Langages
- Fonction moyenne excel - Guide
2 réponses
Bonjour
Ce qui m'étonne, c'est le message que tu as.
Car j'ai l'impression que tu as des virgules en trop dans la définition de tes array :
Laquelle est la ligne 38 ?
Ce qui m'étonne, c'est le message que tu as.
Car j'ai l'impression que tu as des virgules en trop dans la définition de tes array :
public $actsAs = array(
'MeioUpload.MeioUpload' => array(
'file' => array(
'uploadName' => uniqid()
)
)
);
Laquelle est la ligne 38 ?
Finalement si, je l'ai reproduit. Je n'avais pas le problème parce que je n'avais pas déclaré $actsAs dans une classe.
Visiblement, il y a des restrictions sur les possibilités d'initialisation pour les membres d'une classe.
Je n'ai pas essayé, mais tu peux toujours faire cette initialisation dans le constructeur
Visiblement, il y a des restrictions sur les possibilités d'initialisation pour les membres d'une classe.
Je n'ai pas essayé, mais tu peux toujours faire cette initialisation dans le constructeur
Je me suis également dit que sa venait de l'orienter objet, mais les devellopeurs que j'ai consulter semble aussi étonner que moi.
Du coup, j'ai fini par l'ajouter dans le filtre beforeValidate() :
Avant ça j'ai tenté de modifier directement le code source du plugin mais j'obtiens exactement la même chose.
Du coup, j'ai fini par l'ajouter dans le filtre beforeValidate() :
public function beforeValidate(){
$this->data['Post']['file']['name'] = time().strrchr($this->data['Post']['file']['name'], '.');
}
Avant ça j'ai tenté de modifier directement le code source du plugin mais j'obtiens exactement la même chose.
La ligne 38 c'est justement le : 'uploadName' => uniqid() .