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. 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
    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. 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. 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)