Parse error: syntax error, unexpected T_STRIN

Bonjour,
un petit souci avec mon code, voici l'erreur :

Parse error: syntax error, unexpected T_ELSE in /var/www/vhosts/site.com/httpdocs/classes/Product.php on line 1299

Les lignes concernées : ( en gras la 1299 )

if ($id_customer AND $carte=0) {
$price *= ((100 - Group::getReduction($id_customer))/100);
self::$_prices[$cacheId] = ($divisor AND $divisor != 'NULL') ? number_format($price/$divisor, $decimals, '.', '') : number_format($price, $decimals, '.', '');
return self::$_prices[$cacheId];
else ($id_customer AND $carte=1)
$price *= ((100 - Group::getReduction($id_customer)*0.5)/100);
self::$_prices[$cacheId] = ($divisor AND $divisor != 'NULL') ? number_format($price/$divisor, $decimals, '.', '') : number_format($price, $decimals, '.', '');
return self::$_prices[$cacheId];
}

Quelqu'un à une idée ?
Merci par avance :)

6 réponses

  1. non, ton erreur n'est pas sur la ligne
    $price *= ((100 - Group::getReduction($id_customer)*0.5)/100);
    mais sur la ligne
    else { ($id_customer AND $carte==1)
    re-vérifie
    ce else est incorrect,
    Je t'ai dit que c'était
    else {
    ou bien
    elseif (condition) {
    et toi tu fais
    else { (condition)
    1. Ok,

      donc, que faudrait-il à mon code :

      if ($id_customer AND $carte==0) {
      $price *= ((100 - Group::getReduction($id_customer))/100);}
      else { ($id_customer AND $carte==1)
      $price *= ((100 - Group::getReduction($id_customer)*0.5)/100);

      self::$_prices[$cacheId] = ($divisor AND $divisor != 'NULL') ? number_format($price/$divisor, $decimals, '.', '') : number_format($price, $decimals, '.', '');
      return self::$_prices[$cacheId];
      }
      }
      ( j'ai déclaré une fonction un peu plus haut )
      pour qu'il marche ?

      Sachant qu'actuellement j'ai une erreur :

      Parse error: syntax error, unexpected T_VARIABLE in /var/www/vhosts/pechere.webstockage.com/httpdocs/classes/Product.php on line 1295

      soit :

      $price *= ((100 - Group::getReduction($id_customer)*0.5)/100);

      ?

      Merci bcp pour vos contributions qui me permettent de mieux comprendre le code !
      1. Bonjour

        Un else ne peut venir qu'immédiatement après l'instruction ou le bloc qui suit un if. Or, toi, ton else il est à l'intérieur du bloc ! Il faut une accolade } à la fin de la ligne qui précède le else.
        De même else(condition) n'existe pas en php : c'est else { ou bien elseif (condition) {
        Commence par corriger ces deux points.
        Ensuite, vérifie tes conditions. Elles ne sont pas syntaxiquement incorrectes, mais il y a gros à parier qu'elles ne font pas ce que tu veux. Pour mémoire, la comparaison c'est = et non pas ==.
        1. un point virgule a la fin de ta commande ?
          si c'est comme en C++ il te faut boucler ta commande par un point virgule, il y en a bien a toutes tes lignes sauf celle en gras.
          tient moi au courant