comment exclure un fichier après, y compris en php?
Après nous ajouter un fichier à l'intérieur de Myfile.php
avec:
require_once 'abc.php';
ou
include_once 'abc.php';
Comment nous allons supprimer le fichier? Ou comment arrêter la abc.php
fichier contenu accessible après un certain bloc de code?
Dépend du contenu du fichier. Mais, en général, une fois que vous chargez un fichier via
Pourquoi? Il y a quelque chose de mal avec votre logique.
oui. si ses pas possible, j'ai passé quelques 2-3 heures pour changer mon code. J'ai des fichiers différents avec une classe à l'intérieur d'eux. mais un peu de classe ont les mêmes noms. donc au cas où je besoin pour accéder au 2 fichiers différents avec la même classe, qu'il va jeter "classe redéclarée erreur".
Ne devriez pas avoir des classes avec le même nom. Si vous ne pouvez pas l'éviter (en dehors des bibliothèques) utilisation des espaces de noms: php.net/manual/en/language.namespaces.rationale.php
Ohh non.. je suis en fait l'utilisation de l'ORM, qui est la création de la table des classes. donc pour le nom de la table
require_once
ou include_once
il est là et vous ne pouvez pas sélectivement activer ou le désactiver.Pourquoi? Il y a quelque chose de mal avec votre logique.
oui. si ses pas possible, j'ai passé quelques 2-3 heures pour changer mon code. J'ai des fichiers différents avec une classe à l'intérieur d'eux. mais un peu de classe ont les mêmes noms. donc au cas où je besoin pour accéder au 2 fichiers différents avec la même classe, qu'il va jeter "classe redéclarée erreur".
Ne devriez pas avoir des classes avec le même nom. Si vous ne pouvez pas l'éviter (en dehors des bibliothèques) utilisation des espaces de noms: php.net/manual/en/language.namespaces.rationale.php
Ohh non.. je suis en fait l'utilisation de l'ORM, qui est la création de la table des classes. donc pour le nom de la table
user_details
et payment_details
, il va créer des classes dans user
dossier et payment
dossier avec details.php
fichier et la classe - details
..
OriginalL'auteur user1638279 | 2014-06-26
Vous devez vous connecter pour publier un commentaire.
En PHP, une fois qu'une ressource est inclus, il ne peut pas être retiré ou "non-inclus". C'est le principe même de l'inclusion de fichiers PHP. Voir : http://www.php.net/manual/en/function.include.php
Une fois que l'interprète a évalué votre code, le travail est fait. Toutes les opérations ont été prises en compte, et pour annuler les modifications, vous devez procéder à l'inverse des opérations. Par exemple, si votre fichier inclus déclare la classe
MyClass
alors vous devez la destruction, ce qui est également impossible pour la même raison que ci-dessus. Voir : Unset Classe.Si votre fichier ajoute fonctions et pas classes, puis depuis PHP 5.3, vous pouvez utiliser les fonctions anonymes. Cela vous permet d'assigner des fonctions à variables, qui peut être unset. Voir cette réponse pour plus de détails.
Si une partie de votre code de logique a pour disparaître à un certain point, alors vous ne passez pas assez de temps la conception avant la mise en œuvre de.
Si vous avez besoin de annuler une inclusion raison de conflits de noms, le problème est à peu près la même. Toutefois, une solution dans ce cas serait d'utiliser les espaces de noms. Encore, une petite revue de la conception de votre application devrait être suffisant pour éviter de tels conflits.
Modifier sur les cadres : un cadre unique ne peut répondre pour chaque application. Symfony, par exemple, utilise les espaces de noms absolument partout pour éviter d'éventuels conflits (pourtant, certains se produire). Si votre cadre ne vous offre pas la possibilité de facilement distinguer les deux classes du modèle avec le même nom, alors je dirais qu'il ne tient pas (du moins, pas avec votre conception).
if($x=TRUE){include("thisFile_inc.php);}
.OriginalL'auteur John WH Smith
Vous ne pouvez pas. une fois son chargement ne peut pas être supprimé.
JakeGould la question est
how to...
la réponse estyou can't
. Je crois que c'est une réponse directe à la question principale.En fait, il est. Ce que l'OP demande n'est pas possible, donc la seule réponse correcte est "vous ne pouvez pas". Autre chose serait de jouer avec la sémantique ou de solutions de contournement. Toutefois, en expliquant pourquoi serait un bon complément.
Encore une fois, ceci est un commentaire. Pas une réponse. Il ne fournit pas de détails ou d'explications. Ne reconnaît pas non plus le fait que, de notre point de vue, aucun de nous ne sait ce qui est exactement dans ces fichiers trop. Comme un commentaire, il est valide. Comme réponse, il ne l'est pas.
OriginalL'auteur joaofgf
Il y a une solution de contournement. Vous pouvez inclure des fichiers tout en mémoire tampon de sortie est SUR. Puis enregistrez le résultat dans la variable $output. Utilisez cette option si vous, sinon, pour les annuler, il suffit de ne unset($output);
Et plus tard, vous pouvez le faire
unset('output')
lorsque vous n'avez pas besoin de plus.OriginalL'auteur aceph