2012-10-22 4 views
3

Est-il possible d'exclure une instruction if dans deux fichiers différents? Lorsque j'écris quelque chose comme le code suivant, il donne une erreur d'analyse: syntax error, unexpected end of file. Apparemment, je dois toujours fermer une instruction if dans le même fichier inclus. Y a-t-il un moyen d'accomplir ce que je veux?Exclure une instruction if?

index.php:

<?php 
require "top.inc.php"; // opening the if statement 
    some code to execute if statement in top.inc.php is true 
require "bottom.inc.php"; // closing the if statement 
?> 

top.inc.php:

<?php if (1 == 1) { ?> 

bottom.inc.php:

<?php } ?> 
+0

ne sais pas si cela fait une différence, mais vous avez essayé une autre syntaxe comme ' '' '? –

+3

Chaque fichier que vous incluez/exigez doit être syntaxiquement correct, donc je ne pense pas que vous puissiez faire ce que vous demandez de cette manière. Qu'essayez-vous d'obtenir? –

+0

@MaxGherkins Oui, j'ai essayé ça! Ça ne fait aucune différence. – puyol5

Répondre

3

Non, il est impossible. Chaque fichier .php doit avoir une syntaxe complète et valide. include Les fichiers ing ne sont pas exactement identiques à la copie et au collage de leur contenu.

+2

+1. Je pense que c'est une faute de la communauté php qui essaie souvent de le rendre super simple pour les débutants et finit par dire y compris est le même que copier coller. – itachi

+2

@itachi - Coupable. Je promets de ne pas recommencer. –

-3
<? 
file_put_contents("temp.php",file_get_contents("top.inc.php")); 
$Middle_Code = <<<HEREDOC 
/* 
Other code to be put inside this heredoc, 
but, of course, outside this comment block! 
*/ 
HEREDOC; 
file_put_contents("temp.php",$Middle_Code,FILE_APPEND); 
file_put_contents("temp.php",file_get_contents("bottom.inc.php"),FILE_APPEND); 
require("temp.php"); 
+2

J'espère que ce n'est qu'une suggestion ironique et non destiné à la consommation réelle ... – deceze

+0

seulement si le demandeur a vraiment besoin de le faire :) – jondinham

+1

Il ne résout même pas le problème dans la question. Où est "du code à exécuter si l'instruction dans top.inc.php est vraie"? – Tim

0

Vous ne pouvez pas faire . Ce que vous pouvez faire serait le suivant

dans votre top.php

<?php if($condition) { 
      include "bottom.inc.php";  
?> 

<?php } ?> 
0

Chaque fichier doit avoir une syntaxe correcte. Le plus simple serait de définir une variable pour contenir une valeur de 1 si l'instruction est vraie.

Quelque chose comme:

top.php

if (1 == 1) $value = 1; 

index.php

if ($value == 1) // do something