require ou include sont-ils conditionnels ?

WRInaute accro
Bonjour

J'ai PHP 7+ sur mon site.

Je vais résoudre les duplicate content nombreux , tout en modularisant le code php de mes pages de stats.

Je compte mettre tout en require, mais il y a parfois des conditions.

Dans le cas d'un require sous condition, le code php est-il parsé et inclus comme s'il figurait dans la condition, ou non ?

Même question pour un include.

Merci beaucoup de vos réponses.

Amicalment.
 
WRInaute accro
Bonjour,

require et include sont des instructions qui sont exécutées comme les autres.

Avez-vous regardé du côté de require_once et include_once qui évitent d'inclure deux fois le fichier ?

Jean-Luc
 
WRInaute accro
NB: Si le fichier inclus n'existe pas :
- include provoque une notice.
- require provoque une exception.
 
WRInaute accro
Excusez-moi

Celà veut-il dire que le code PHP inclus, est parsé en même temps que le code incluant, sans s'occuper de la condition ?

Donc le code inclus est inclus et parsé ipso facto à son emplacement, et évidemment est exécuté d'après la condition ?

Merci beaucoup.
 
WRInaute accro
ortolojf a dit:
Donc le code inclus est inclus et parsé ipso facto à son emplacement, et évidemment est exécuté d'après la condition ?
Vous pouvez très bien avoir une ligne comme celle-ci:
Code:
require_once $file_to_include ;
Je pense que cet exemple répond à la question.

Jean-Luc
 
WRInaute accro
Bonjour Jean Luc

Il ne s'agit pas d'un require_once, mais d'un require simple.

Un require simple dans une condition, incluant un fichier avec du code PHP, le parseur/compilateur just in time PHP, va-t-il parser tout d'un bloc, le script appelant et le code du script inclus, sans interprétation en amont de la condition ?

Sur le plan de la production du code objet ( après parsage et compil j.i.t. ), cette construction est-elle équivalente, au code PHP incluant/inclus ?

Merci.
 
WRInaute passionné
Ce n'est pas en remplaçant des morceaux de code dupliqués dans un script par un require (ou include) que ça va changer quelque chose côté optimisation, c'est même pire puisqu'il doit faire des accès disques supplémentaires.

Un bout de code dupliqué doit se trouver dans une fonction ou méthode de classe que l'on appelle autant de fois que l'on veut, c'est en cas la bonne pratique. On est sûr que ça ne va pas copier le code et le compiler plusieurs fois en mémoire.

Alors que l'include, c'est possible qu'il y ait eu des innovations qui font qu'il détecte que c'est le même fichier appelé et donc ne va pas à nouveau le charger/compiler, mais j'en doute fortement, pour tester faudrait faire une boucle et un autre programme qui modifie le fichier inclu en même temps pour voir si les modifs sont prises en compte, mais galère à tester, ou si un spécialiste peut répondre...
 
Discussions similaires
Haut