<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>e-Maxime &#187; Performance</title>
	<atom:link href="http://www.maximegarcia.fr/blog/tag/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.maximegarcia.fr/blog</link>
	<description>Un autre entrepreneur du Web</description>
	<lastBuildDate>Sat, 26 Mar 2011 18:16:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP : Accès aux variables non déclarées</title>
		<link>http://www.maximegarcia.fr/blog/2009/10/php-acces-aux-variables-non-declarees/</link>
		<comments>http://www.maximegarcia.fr/blog/2009/10/php-acces-aux-variables-non-declarees/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 13:00:48 +0000</pubDate>
		<dc:creator>Maxime Garcia</dc:creator>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.maximegarcia.fr/blog/?p=127</guid>
		<description><![CDATA[Quand on accède à des variables non déclarées, cela a un coût en terme de performance. En effet, PHP tente de la trouver, constate qu&#8217;il n&#8217;y arrive pas et lève une erreur de type E_WARNING, et ce même si vous &#8230; <a href="http://www.maximegarcia.fr/blog/2009/10/php-acces-aux-variables-non-declarees/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-277" title="Des éléPHPants" src="http://www.maximegarcia.fr/blog/wp-content/uploads/2010/02/elephpant-groupe.head_.jpg" alt="" width="640" height="200" /></p>
<p>Quand on accède à des variables non déclarées, cela a un coût en terme de performance. En effet, PHP tente de la trouver, constate qu&#8217;il n&#8217;y arrive pas et lève une erreur de type E_WARNING, et ce même si vous ne les affichez pas. Démonstration.</p>
<p><span id="more-127"></span></p>
<p>Exécutons 100 000 fois le code de référence, la variable $variable n&#8217;étant pas déclarée :</p>
<pre>if ($variable=='test')
  { }</pre>
<p>Cela prend en moyenne 180ms.</p>
<p>Voyons le code, amélioré :</p>
<pre>if (isset($variable) &amp;&amp; $variable=='test')
  { }</pre>
<p>100 000 exécutions prennent alors en moyenne 42ms, soit une amélioration de 75% en terme de rapidité d&#8217;exécution.</p>
<p>Ce test donne les même résultats que ce soit une variable ($test), un élément de tableau ($test['test']) ou autre.</p>
<p>PHP est souple au niveau des variables (déclaration, typage), l&#8217;avantage en terme de programmation a un coût en terme de performances.</p>
<p>Si vous voulez améliorer celles de votre app, laissez s&#8217;afficher les erreurs E_WARNING : en effet ce n&#8217;est pas parce qu&#8217;elles ne sont pas affichées par votre configuration de PHP qu&#8217;elles ne sont pas présentes. PHP lèvent ces erreurs quoiqu&#8217;il arrive, donc mieux vaut les voir et les éradiquer.</p>
<p>Déclarez explicitement vos variables, ou testez en premier leur existance via isset() avant d&#8217;y accéder.</p>
<p><em>Crédit photo : <a href="http://www.flickr.com/photos/dragonbe/3411273755/" target="_blank">DragonBe</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximegarcia.fr/blog/2009/10/php-acces-aux-variables-non-declarees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

