@include ou if(is_file($file)) include $file ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par michel.leonard, 12 Avril 2012.

  1. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    361
    J'aime reçus:
    0
    Salut chers WRInautes, je me demande juste si c'est problématique de faire @include $file ? est-ce plus lent que if(is_file($file)) include $file; ? vous en pensez quoi ?
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 163
    J'aime reçus:
    338
    Pour savoir si c'est plus lent, tu fais 1000 itérations et tu mesures le microtime ;)
     
  3. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 163
    J'aime reçus:
    338
    Je viens de faire le test:
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />echo </span><span class="syntaxstring">'@include:<br />'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$start </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> microtime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">for </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> 1000</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i</span><span class="syntaxkeyword">++)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">@include(</span><span class="syntaxstring">'hello.php'</span><span class="syntaxkeyword">);<br />}<br /></span><span class="syntaxdefault">$end </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> microtime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$time </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $end </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> $start</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'Temps avec fichier include existant: '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$time</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$start </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> microtime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">for </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> 1000</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i</span><span class="syntaxkeyword">++)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">@include(</span><span class="syntaxstring">'hello.bat'</span><span class="syntaxkeyword">);<br />}<br /></span><span class="syntaxdefault">$end </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> microtime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$time </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $end </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> $start</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'Temps avec fichier include inexistant: '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$time</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'is_file/include:<br />'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$start </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> microtime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">for </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> 1000</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i</span><span class="syntaxkeyword">++)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">is_file</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'hello.php'</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> include </span><span class="syntaxstring">'hello.php'</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">$end </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> microtime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$time </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $end </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> $start</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'Temps avec fichier include existant: '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$time</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$start </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> microtime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">for </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> 1000</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i</span><span class="syntaxkeyword">++)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">is_file</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'hello.bat'</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> include </span><span class="syntaxstring">'hello.bat'</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">$end </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> microtime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$time </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $end </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> $start</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'Temps avec fichier include inexistant: '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$time</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>
    hello.php
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br /></span><span class="syntaxcomment">//Hello world<br /></span><span class="syntaxdefault"> </span>
    Résultats:
    Code:
    @include:
    Temps avec fichier include existant: 0.195801019669
    Temps avec fichier include inexistant: 1.83798408508
    is_file/include:
    Temps avec fichier include existant: 0.413612127304
    Temps avec fichier include inexistant: 0.193293094635
    
     
  4. sonn
    sonn WRInaute discret
    Inscrit:
    9 Mars 2012
    Messages:
    70
    J'aime reçus:
    0
    résultat logique, la suppresion des erreurs est très lent, mais permet de supprimer un calcul... tu y gagne mais tu y perd :p personnelement je préfère toujours etre les erreurs sauf de très rares cas