2012-01-31 3 views
-1

J'ai finalement commencé à apprendre PHP et j'ai beaucoup de problèmes avec ça. Je suis en train de faire un site web changer sa feuille de style selon le moment de la journée (jour, crépuscule, nuit) et j'ai pris cette approche:Erreur d'analyse PHP if-else

<?php 
    $lt = localtime(); 
    if ($lt[2]>=6 && $lt[2]<=16) 
     echo('<link href="style.css" rel="stylesheet" type="text/css" />'); 
    elsif ($lt[2]>=17 && $lt[2]<=21) 
     echo('<link href="style_twilight.css" rel="stylesheet" type="text/css" />'); 
    else 
     echo('<link href="style_night.css" rel="stylesheet" type="text/css" />'); 
?> 

Je reçois erreur de syntaxe, T_ECHO inattendue .. .../style_changer.php on line 12

Qu'est-ce qui ne va pas?

+5

Il est (http://php.net/manual/en/control-structures.elseif.php) [ 'elseif'], et vous devez être en utilisant accolades. – mario

+1

il pourrait être plus facile pour vous de lire si vous tapez simplement 'echo" quelque chose ";' sans les '()' s – Jakub

Répondre

0

abord très simple faute de frappe ELSIF au lieu de els_e_if.

0

Pour nettoyer votre code:

<?php 
$lt = localtime(); 

if ($lt[2]>=6 && $lt[2]<=16) { 
    echo '<link href="style.css" rel="stylesheet" type="text/css" />'; 
} elseif ($lt[2]>=17 && $lt[2]<=21) { 
    echo '<link href="style_twilight.css" rel="stylesheet" type="text/css" />'; 
} else { 
    echo '<link href="style_night.css" rel="stylesheet" type="text/css" />'; 
} 
?> 

rend plus facile à lire, utiliser aussi {} pour la logique seperating, son tout au sujet de la lecture de votre code plus tard (votre ou quelqu'un d'autre)

-2

Essayez ceci:

$lt = localtime(); 
    if ($lt >= 6 && $lt <= 16){ 
     echo '<link href="style.css" rel="stylesheet" type="text/css" />'; 
      } 
    elseif ($lt >= 17 && $lt <= 21){ 
     echo '<link href="style_twilight.css" rel="stylesheet" type="text/css" />'; 
      } 
    else{ 
     echo '<link href="style_night.css" rel="stylesheet" type="text/css" />'; 
      } 

Premièrement: Il est elseif(){ Do something } //Note the Curly brackets

Deuxièmement: Votre echo ('something';) est incorrect. Devrait être: echo 'quelque chose';

Troisième: Pas besoin de $lt[2] $lt fonctionne très bien

Questions connexes