message parse error, expecting `')'' on line 145

Petit nouveau ! | 9 Messages

24 févr. 2010, 17:02

Bonjour, voici mon code:

Code : Tout sélectionner

143 case 'collections': 144 $results = $metadata_store-›get_collection_timestamps(); 145 foreach ($results as $k =› $v){ 146 $results[$k] = $results[$k]/100; 147 exit(json_encode($results)); 148 }
Comme vous pouvez le voir ,dans le message d'erreur, j'ai une coquille à la ligne 145; j'ai bien la parenthèse. Je ne vois donc pas ce qu'il manque (j'ai essayé avec ajout des accolades comme ici ou sans accolade --> cela ne change rien)

je sèche complètement,

Quelqu'un aurait il une idée ?

merci d'avance

Yo

ViPHP
ViPHP | 5462 Messages

24 févr. 2010, 17:05

ouai ton => est pas bon, c'est pas vrai ">" (genre copier collé de word)
Modifié en dernier par stealth35 le 24 févr. 2010, 17:07, modifié 2 fois.

Eléphant du PHP | 86 Messages

24 févr. 2010, 17:06

Salut,

Ton problème vient d'avant en fait, il faut délimiter ton case correctement...
case 'collections':
	{
		$results = $metadata_store-›get_collection_timestamps();
		foreach ($results as $k =› $v){
			$results[$k] = $results[$k]/100;               
			exit(json_encode($results));
		}
	}
	break;
Edit : Autant pour moi, bien vu stealth35

Petit nouveau ! | 9 Messages

24 févr. 2010, 17:21

Bonjour,

autant pour moi. Erreur de débutant. Effectivement je l'ai pris d'un copié collé.
Le boulet que je suis.

Par contre, je vois dans le message de Skikit qu'il y a un "break". faut il obligatoirement en mettre un pour chaque case ?

voici mon bout de code entier:

Code : Tout sélectionner

switch ($collection) { case 'quota': exit(json_encode(array((int)($metadata_store->storage_total_get()/1024), $metadata_store->get_system_quota_display()))); case 'collections': $results = $metadata_store->get_collection_timestamps(); foreach ($results as $k => $v) $results[$k] = $results[$k]/100; exit(json_encode($results)); case 'collection_counts': exit(json_encode($metadata_store->get_collection_list_with_counts())); default: report_problem(WEAVE_ERROR_INVALID_PROTOCOL, 400); }
merci encore pour votre aide

Yo

ViPHP
ViPHP | 5462 Messages

24 févr. 2010, 17:23


ViPHP
ViPHP | 2287 Messages

24 févr. 2010, 20:01

Par contre, je vois dans le message de Skikit qu'il y a un "break". faut il obligatoirement en mettre un pour chaque case ?
C'est pas obligatoire mais si tu n'en mets pas, l'éxécution d'un case peut continuer et empiéter sur le case suivant, et ça peut même continuer comme ça jusqu'à la fin du switch. Ce qui est un peu ballot et pas toujours simple à diagnostiquer ;)

C'est pourquoi pour t'éviter ce souci potentiel c'est une bonne pratique de poser un break systématiquement pour chaque bloc d'instructions suivant un case.
if(!@work()){ Nespresso(); } else { what(); }
______________________________