Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1116 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  comportement de include_once

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comportement de include_once

n°1942814
simogeo
j'ai jamais tué de chats, ...
Posté le 20-11-2009 à 14:36:01  profilanswer
 

Salut,
 
je viens de constater un comportement surprenant de PHP. Et je suis assez friand d'explications!!
 
 
j'ai un fichier a.php :
 

Code :
  1. <?php
  2. include_once('b.php');
  3. echo foo();
  4. if(!function_exists('foo')) {
  5.   function foo() {
  6.     $v = 'foo';
  7.     return $v;
  8.   }
  9. }
  10. ?>


 
et dans b.php :
 

Code :
  1. <?php
  2. if(!function_exists('foo')) {
  3.   function foo() {
  4.     $v = 'bar';
  5.     return $v;
  6.   }
  7. }
  8. ?>


 

echo foo();
m'affiche bar.
 
 
Maintenant, je supprime le test qui me permet de savoir si ma fonction existe dans a.php, j'ai donc :
 

Code :
  1. <?php
  2. include_once('b.php');
  3. echo foo();
  4.   function foo() {
  5.     $v = 'foo';
  6.     return $v;
  7.   }
  8. ?>



echo foo();
me renvoie foo!
 
Etonnant, non!
 
 
 


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
mood
Publicité
Posté le 20-11-2009 à 14:36:01  profilanswer
 

n°1942817
___alt
Posté le 20-11-2009 à 14:40:51  profilanswer
 

C'est un comportement normal, défini dans la documentation.
 

Citation :

Les fonctions n'ont pas besoin d'être définies avant d'être utilisées, SAUF lorsqu'une fonction est définie conditionnellement, comme montré dans les deux exemples suivants.
 
Lorsqu'une fonction est définie de manière conditionnelle, comme dans les exemples ci-dessous, leur définition doit précéder leur utilisation.


 
http://www.php.net/manual/fr/funct [...] efined.php


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°1942819
simogeo
j'ai jamais tué de chats, ...
Posté le 20-11-2009 à 14:46:17  profilanswer
 

merci Altherac. :jap:  
 
Je me doute que c'est normal. Il me manquait la référence à la doc. C'est maintenant très clair  :D


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  comportement de include_once

 

Sujets relatifs
Include d'un menu selon la session ou on se trouve, sécurité ?[php] un include de contenu dans page sans rechargement : possible?
[PHP] Include. Problème de mise en place.Problème de compilation gcc / Repertoires 'include' pas trouvés
include sans image site distantSelectBox et comportement onchange
probleme include avec g++ 2.95 et pas avec g++ 4.3.3[PHP] Comment définir une variable contenant une include ?
Comportement bizarre d'un bouton radio sous IEComportement de Sqlite, Postgresql, et MySQL en cas de crash du client
Plus de sujets relatifs à : comportement de include_once


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR