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

WRInaute occasionnel
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 ?
 
WRInaute accro
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
 
WRInaute discret
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
 
Discussions similaires
Haut