Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2010, 13h32   #1
Membre confirmé
 
Homme Vincent
Développeur informatique
Inscription : janvier 2009
Messages : 246
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 246
Points : 235
Points : 235
Par défaut include morceau de code

Bonjour à toutes et à tous,
Comment peut on faire pour inclure un morceau de code qui se répète un peu partout dans un script sans l'inclure à partir d'un fichier externe mais en utilisant un morceau de code qui se trouve dans le script en lui même. Ça correspond à un include comme en C.
Merci
philodido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 13h48   #2
Candidat au titre de Membre du Club
 
Inscription : décembre 2008
Messages : 30
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2008
Messages : 30
Points : 14
Points : 14
salut, il faut que tu définisse ton morceau de code en fonction et ensuite tu l'appelles comme bon te semble.

Code php :
1
2
3
4
5
 
function MaFonction($Argument)
{
// Code de la fonction que tu veut pouvoir executer
}

ensuite pour l'appeler, mettons que ça soit pour traiter une variable :
Code php :
1
2
3
 
$Var = "hello world";
echo MaFonction($Var);

tu peux aussi la faire sans argument si tu ne dois pas passer de variable ou que les variables sont transmises par $_POST ou $_GET
Bloody-wave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 15h44   #3
Membre confirmé
 
Homme Vincent
Développeur informatique
Inscription : janvier 2009
Messages : 246
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 246
Points : 235
Points : 235
J'y avais pensé mais je me disais qu'il existait peut être quelque chose d'autre.
En tout cas merci beaucoup de ta réponse.
philodido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 17h25   #4
Membre confirmé
 
Avatar de Psycadi
 
Homme Olivier
Développeur de message box en .Net
Inscription : juillet 2003
Messages : 138
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de message box en .Net

Informations forums :
Inscription : juillet 2003
Messages : 138
Points : 227
Points : 227
Envoyer un message via MSN à Psycadi
la fonction include('script.php'); permet de mettre tout le code contenu dans ton script, directement dans la page que tu veux.
Psycadi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 15h18   #5
Membre confirmé
 
Homme Vincent
Développeur informatique
Inscription : janvier 2009
Messages : 246
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 246
Points : 235
Points : 235
Merci de ta réponse, mais tu as mal lu ma question. Je ne veux pas inclure un fichier (un script) externe mais un morceau de code se trouvant dans le même script. Si tu as une solution, n'hésite pas, parce que être obligé de passer par une fonction pour faire ça je trouve ça un peu très lourd et ça prend des ressources.
philodido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 02h13   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2008
Messages : 30
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2008
Messages : 30
Points : 14
Points : 14
En étant dans le même fichier sans inclusion tu es obligé de passer par une fonction ou une variable.

Sachant que tu as dis que c'était un morceau de code j'ai pensé à plusieurs lignes de script, donc la fonction est la plus appropriée à mon sens.

Je ne vois pas en quoi utiliser une fonction est très lourd dans ton cas, il sera certainement plus lourd d'inclure ton morceau de code partout dans ton script
Bloody-wave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 03h19   #7
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

J'ai testé l'utilisation de syntaxe HEREDOC et de la fonction eval() qui permet d'exécuter une chaîne comme un script PHP.

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
$str = <<<MACRO
echo '<p>';
echo 'coucou';
echo "<p>\n";
MACRO;
 
eval($str);	// Affiche coucou
 
eval($str);	// Affiche coucou
?>
Ca fonctionne mais c'est sans aucun doute plus lourd qu'un simple appel à une fonction contenant le code à dupliquer comme la suggéré Bloody-wave.

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
function macro(){
	echo '<p>';
	echo 'coucou';
	echo "<p>\n";
}
 
macro();	// Affiche coucou
 
macro();	// Affiche coucou
?>
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 12h29   #8
Membre confirmé
 
Homme Vincent
Développeur informatique
Inscription : janvier 2009
Messages : 246
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 246
Points : 235
Points : 235
Ce qui est lourd c'est de devoir passer tous les paramètres à la fonction lorsqu'il y en a beaucoup, et de les passer par référence quand il s'agit de données modifiables en sortie. De plus ça prend des ressources pour le traitement. J'ai essayé et le temps de traitement a été rallongé par rapport à une version sans fonctions.
C'est fort dommage qu'il n'existe pas une fonction qui fasse un simple copier/collé du code avant traitement à l'intérieur d'un même script (comme include() mais sans devoir passer par un script externe). Ça épargnerait l'utilisation inutile de ressource dans ce genre de cas. Mais bon, tant pis on fera sans .

Mais je vais qu'en même tester ta solution Eric2a, ça a l'air pas mal.

En tout cas merci à tous, et si quelqu'un à d'autres solutions, qu'il n'hésite pas.
philodido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 14h58   #9
Membre confirmé
 
Homme Vincent
Développeur informatique
Inscription : janvier 2009
Messages : 246
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 246
Points : 235
Points : 235
Ok, j'ai testé eval et ça fonctionne impeccable, c'est exactement ce que je cherchais. En fait la fonction commande l'interprétation du morceau de code à l'endroit où on l'appel comme si le code était noté explicitement à cet endroit. Du coup pas besoin de passer de paramètres comme avec la technique utilisant une fonction spécifique pour interpréter le code, et au niveau ressource le script est aussi rapide que si le code était présent au différents endroits où on appel eval(). De plus eval() peut aussi être utilisée pour interpréter du code stocké dans une base de donnée, c'est d'ailleurs sa fonction première.

Merci Eric2a.
philodido est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h23.


 
 
 
 
Partenaires

Hébergement Web