2016-12-16 1 views
-1

J'ai essayé de faire un état "actif" dans Bootstrap, donnant li un class="active" chaque fois qu'il est sur le site spécifié.inattendu 'OR' (T_LOGICAL_OR)

J'ai ce script:

<?php if (stripos($_SERVER['REQUEST_URI'],'/page1.php') !== false) OR (stripos($_SERVER['REQUEST_URI'],'/page2.php') !== false) {echo 'active';} ?> 

Il est utilisé pour un menu déroulant, qui devrait avoir la classe active chaque fois qu'il est sur soit page1 ou page2.

Je reçois cette erreur:

Parse error: syntax error, unexpected 'OR' (T_LOGICAL_OR) in your code on line 1

Est-ce que quelqu'un sait ce que je l'ai fait mal ici? J'ai essayé avec "OU" et "||", mais aucun d'eux ne fonctionne.

Répondre

2

L'instruction if est mal formaté

<?php if ((stripos($_SERVER['REQUEST_URI'],'/page1.php') !== false) OR (stripos($_SERVER['REQUEST_URI'],'/page2.php') !== false)) {echo 'active';} ?> 
+1

La raison derrière cela, c'est parce que PHP pensera qu'il est fait d'analyser l'instruction if, quand elle se termine la première parenthèse a commencé après l'IF lui-même. Par conséquent, il attend '{' après le ')' avant le 'OR' –

+0

Donc j'ai oublié un crochet pour entourer le script? – Marcus

+1

oui, vous avez oublié de l'enfermer ... 'if ((condition1) OR (condition2))' –

0

Retirez les brakets avant et après le OU comme ci-dessous.

<?php if (stripos($_SERVER['REQUEST_URI'],'/page1.php') !== false OR stripos($_SERVER['REQUEST_URI'],'/page2.php') !== false) {echo 'active';} ?>

+0

Ceci est fondamentalement la même chose que l'autre réponse, cependant, aucun de vous expliqué pourquoi ... contrairement à mon commentaire à l'autre réponse. –

0
<?php if ((stripos($_SERVER['REQUEST_URI'],'/page1.php') !== false) OR (stripos($_SERVER['REQUEST_URI'],'/page2.php') !== false)) echo 'active'; ?> 

This code works - I've tried it!

Un jeu manquant de crochets et un jeu superflu.