<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.lain82.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Un pixel dans l'espace</title>
  <link>http://www.lain82.net/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Mon, 19 Apr 2010 14:17:31 +0200</pubDate>
  <copyright>Sauf mention explicite, le contenu de ce Weblog est protégé par les droits d'auteur.</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Microsoft Etudiant : DreamSpark</title>
    <link>http://www.lain82.net/post/2008/02/21/Microsoft-Etudiant-%3A-DreamSpark</link>
    <guid isPermaLink="false">urn:md5:2a4eba5eb9e2045ad04ecdd3d31f6d94</guid>
    <pubDate>Thu, 21 Feb 2008 03:05:00 +0000</pubDate>
    <dc:creator>Sébastien Franzot</dc:creator>
        <category>Ecole</category>
        <category>DreamSpark Microsoft POO Logiciels Etudiant</category>    
    <description>    &lt;p&gt;Pour tous les étudiants qui seraient intéressés de découvrir les différents langages proposés par Microsoft, ou apprendre à utiliser les outils de développement Visual Studio, vous serez ravis d'apprendre qu'en plus du MSDNAA, Microsoft viens de mettre à disposition gratuitement&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio 2008 Professional Edition ( ainsi que la version 2005 )&lt;/li&gt;
&lt;li&gt;SQL Server 2005 Developper Edition&lt;/li&gt;
&lt;li&gt;Windows Server 2003 Standart Edition&lt;/li&gt;
&lt;li&gt;La série complète des outils Express Edition ( à l'origine, librement et gratuitement téléchargeable )&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour se faire, il vous faudra vous munir de votre login et mot de passe au portail de votre école.
Sinon, c'est &lt;a href=&quot;https://downloads.channel8.msdn.com/Products.aspx&quot; hreflang=&quot;fr&quot;&gt;ICI&lt;/a&gt; que ça se passe ;).&lt;/p&gt;


&lt;p&gt;Pour avoir tester certains langages conçus par Microsoft, je trouve que C# apporte des connaissances intéressantes en terme de Programmation Orientée Objet.&lt;/p&gt;


&lt;p&gt;Cependant, en terme de formation, car le public visé est le corps étudiant, je vous conseille d'approfondir vos connaissances en &lt;a href=&quot;http://fr.wikipedia.org/wiki/Java_%28langage%29&quot; hreflang=&quot;fr&quot;&gt;JAVA&lt;/a&gt;, plus utilisé en entreprise.&lt;/p&gt;


&lt;p&gt;Note: Elève ingénieur de l'ENSIL, réjouissez vous: l'accès est possible à l'aide de nos login/mot de passe de l'ENT :D Profitez en.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lain82.net/post/2008/02/21/Microsoft-Etudiant-%3A-DreamSpark#comment-form</comments>
      <wfw:comment>http://www.lain82.net/post/2008/02/21/Microsoft-Etudiant-%3A-DreamSpark#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lain82.net/feed/rss2/comments/4</wfw:commentRss>
      </item>
    
  <item>
    <title>PHP 4.x : Les itérateurs</title>
    <link>http://www.lain82.net/post/2008/02/20/PHP-4-Les-iterateurs</link>
    <guid isPermaLink="false">urn:md5:5292455f6221409b932ce144a609d1ab</guid>
    <pubDate>Wed, 20 Feb 2008 15:17:00 +0000</pubDate>
    <dc:creator>Sébastien Franzot</dc:creator>
        <category>PHP</category>
        <category>foreach</category><category>itérateur</category><category>php 4</category><category>recordset</category><category>tableau</category>    
    <description>&lt;p&gt;Je souhaite, dans cet article, présenter ce qu'est un itérateur, quel est l'intérêt apporté à notre code, et comment mettre en place une classe en PHP 4.x.&lt;/p&gt;
&lt;p&gt;Je tiens à prévenir d'avance que ce principe en PHP 5.x existe déja nativement à l'aide de l'interface Iterator. Mais l'intérêt étant de découvrir le principe, son fonctionnement et sa mise en place, je préfère le traiter à l'aide de PHP 4. Et peut-être dans le futur, je ferai une suite pour le PHP 5.&lt;/p&gt;    &lt;h3&gt;Les itérateurs: qu'est ce que c'est ?&lt;/h3&gt;
&lt;p&gt;Pour faire simple, &lt;a href=&quot;http://fr.wikipedia.org/wiki/It%C3%A9rateur_%28motif_de_conception%29&quot; hreflang=&quot;fr&quot;&gt;Wikipédia&lt;/a&gt; nous dit :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Un itérateur est un objet qui permet de parcourir tous les éléments contenus dans un autre objet, le plus souvent un conteneur (liste, arbre, etc). Un synonyme d'itérateur est curseur, notamment dans le contexte des bases de données.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vous avez certainement déjà utilisé la fonction &lt;a href=&quot;http://fr.php.net/foreach&quot; hreflang=&quot;fr&quot;&gt;foreach&lt;/a&gt; en PHP pour parcourir les différentes entrées d'un tableau :&lt;/p&gt;
&lt;code&gt;&amp;lt;?php&lt;br /&gt;$mois = array( &quot;Janvier&quot;, &quot;Février&quot;, &quot;Mars&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Avril&quot;, &quot;Mai&quot;, &quot;Juin&quot;, &quot;Juillet&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Aout&quot;, &quot;Septembre&quot;, &quot;Octobre&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Novembre&quot;, &quot;Décembre&quot; );&lt;br /&gt;&lt;br /&gt;foreach ( $mois as $cle =&amp;gt; $valeur )&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;Le mois de &quot;. $valeur. &quot; correspond au mois n°&quot;. ( $cle + 1 ) . &quot; du calendrier international.&amp;lt;br /&amp;gt;&quot;;&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/code&gt;
&lt;p&gt;Le principe de parcourir les différents éléments d'un objet de cette façon pourrait vous faciliter la vie. Un exemple plus concret : vous récupérez une série d'enregistrements sur votre base de donnée et vous souhaitez pouvoir faire simplement un parcours à l'aide d'un foreach pour afficher les valeurs.&lt;/p&gt;
&lt;p&gt;Vu que nous développons un itérateur en PHP 4, nous n'avons pas accès à la possibilité d'implémenter l'interface d'itération déjà présente dans PHP 5. Cela implique quelques modifications tel que l'utilisation de while au lieu de foreach. Mais vous allez voir, la simplicité est toujours de mise.&lt;/p&gt;
&lt;h3&gt;Les itérateurs: exemple de base&lt;/h3&gt;
&lt;p&gt;Nous allons nous contentez dans un premier temps de voir la base d'un itérateurs PHP 4. Pour cela, nous allons créer un itérateur gérant un tableau simple. L'intérêt est nul dans un cas aussi simple mais il permet de comprendre le fonctionnement de l'itérateur.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;class Iterateur&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $array;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $current;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $nbElm;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // On crée une instance de l'objet Iterateur en fournissant en paramètre&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // un tableau à traiter&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Iterateur( $array )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // On copie le tableau dans l'itérateur&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;array = $array;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // On compte le nombre d'élément du tableau&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;nbElm = count( $array );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // On place le curseur au début du tableau&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;BOF();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Nous renvoi la valeur qui est pointée actuellement par le curseur&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Valeur()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( $this-&amp;gt;current &amp;gt;= 0 &amp;amp;&amp;amp; $this-&amp;gt;current &amp;lt; $this-&amp;gt;nbElm )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;array[$this-&amp;gt;current];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Nous renvoi la clé de la valeur pointée par le curseur&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Cle()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( $this-&amp;gt;current &amp;gt;= 0 &amp;amp;&amp;amp; $this-&amp;gt;current &amp;lt; $this-&amp;gt;nbElm )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;current;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Déplace le curseur au début du tableau&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function BOF()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;current = -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Déplace le curseur sur l'élément suivant&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Next()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Si on n'est pas en fin de tableau, on déplace le curseur vers l'élément suivant&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( $this-&amp;gt;current &amp;lt; ( $this-&amp;gt;nbElm -1 ) )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;current++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Ce n'est pas nécéssaire mais on replace le curseur au début du tableau&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // et on renvoi false pour sortir de la boucle while&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;BOF();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Et voila l'utilisation que nous pouvons en faire :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$mois = array( &quot;Janvier&quot;, &quot;Février&quot;, &quot;Mars&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Avril&quot;, &quot;Mai&quot;, &quot;Juin&quot;, &quot;Juillet&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Aout&quot;, &quot;Septembre&quot;, &quot;Octobre&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Novembre&quot;, &quot;Décembre&quot; );&lt;br /&gt;&lt;br /&gt;$iter_mois = new Iterateur( $mois );&lt;br /&gt;&lt;br /&gt;while( $iter_mois-&amp;gt;Next() )&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;Le mois de &quot;. $iter_mois-&amp;gt;Valeur(). &quot; correspond au mois n°&quot;. ( $iter_mois-&amp;gt;Cle() + 1 ) . &quot; du calendrier international.&amp;lt;br /&amp;gt;&quot;;&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous pouvez être sur que le résultat est le même mais comme vous l'aurez remarqué, l'intérêt frise l'inutile ici !&lt;/p&gt;
&lt;h3&gt;Les itérateurs: Exemple &quot;utile&quot; à travers un RecordSet&lt;/h3&gt;
&lt;p&gt;Maintenant, prenons le cas un peu plus compliqué si on fait appel à un tableau à dimensions N: Nous souhaitons avoir un tableau à plusieurs colonnes.&lt;/p&gt;
&lt;p&gt;Prenons un cas simple à réaliser avec les itérateurs: nous avons une liste d'invité comportant le nom, le prénom et l'age des personnes. Nous souhaitons afficher la liste de ces personnes. Pour cela, nous allons utiliser un objet que l'on appelle un RecordSet qui nous permet la manipulation de données multilignes et multicolonnes. L'utilité du RecordSet ne s'arrête pas à l'exemple qui est donné par la suite, bien au contraire. Cette notion de RecordSet sera d'ailleurs le sujet d'un futur article.&lt;/p&gt;
&lt;p&gt;Pour faire simple, un recordset stocke des données et nous permet de les manipuler bien plus simplement que si nous avions du manipuler un tableau a plusieurs dimensions. Mais comme l'exemple illustre mieux mes explications, passons au code commenté.&lt;/p&gt;
&lt;p&gt;Tout d'abord, voila la liste des invités:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Dupond&amp;nbsp;&amp;nbsp; François ( 42 )&lt;br /&gt;&amp;nbsp;&amp;nbsp; Cirelly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Anne&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 24 )&lt;br /&gt;&amp;nbsp;&amp;nbsp; Danfrey&amp;nbsp;&amp;nbsp; Cyril&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 36 )&lt;br /&gt;&amp;nbsp;&amp;nbsp; Cirrot&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Antoine&amp;nbsp; ( 28 )&lt;/p&gt;
&lt;p&gt;Et voiçi à quoi ressemble le tableau qui contient les informations de nos invités:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$array_invite = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&quot;Dupond&quot; , &quot;François&quot; , 42),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&quot;Cirelly&quot; , &quot;Anne&quot; , 24),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&quot;Danfrey&quot; , &quot;Cyril&quot; , 36),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&quot;Cirrot&quot; , &quot;Antoine&quot; , 28) );&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Passons maintenant à la déclaration de notre classe RecordSet qui &quot;implémente&quot; notre itérateur:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;class Iterateur_Invites&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $array;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $current;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $nbElm;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Iterateur_Invites( $array )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // On copie le tableau dans l'itérateur&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;array = $array;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // On compte le nombre d'élément du tableau&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;nbElm = count( $array );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // On place le curseur au début du tableau&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;BOF();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Nous renvoi le nom de l'invité&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Nom()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( $this-&amp;gt;current &amp;gt;= 0 &amp;amp;&amp;amp; $this-&amp;gt;current &amp;lt; $this-&amp;gt;nbElm )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;array[$this-&amp;gt;current][0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Nous renvoi le prénom de l'invité&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Prenom()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( $this-&amp;gt;current &amp;gt;= 0 &amp;amp;&amp;amp; $this-&amp;gt;current &amp;lt; $this-&amp;gt;nbElm )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;array[$this-&amp;gt;current][1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Nous renvoi l'age de l'invité&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Age()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( $this-&amp;gt;current &amp;gt;= 0 &amp;amp;&amp;amp; $this-&amp;gt;current &amp;lt; $this-&amp;gt;nbElm )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;array[$this-&amp;gt;current][2];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function BOF()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;current = -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Next()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( $this-&amp;gt;current &amp;lt; ( $this-&amp;gt;nbElm -1 ) )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;current++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;BOF();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On remarque dans un premier temps la très forte ressemblance avec l'exemple du simple tableau. C'est ce qui rend l'utilisation d'un RecordSet équipé d'un itérateur simple dans toutes les circonstances. Il suffit dans un premier temps d'adapter sa classe aux types de données que l'on souhaite traité et l'utilisation de cette classe est souvent la même. Pour vous rendre compte des possibilités offertes par le RecordSet, je vous invite à lire lors de sa sortie l'article qui lui sera dédié.&lt;/p&gt;
&lt;p&gt;Passons enfin à l'utilisation de notre classe :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$invite = new Iterateur_Invites( $array_invite );&lt;br /&gt;&lt;br /&gt;while( $invite-&amp;gt;Next() )&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;L'invité(e) &quot;. $invite-&amp;gt;Nom().&quot; &quot;. $invite-&amp;gt;Prenom(). &quot; est agé(e) de &quot;.$invite-&amp;gt;Age().&quot; ans.&amp;lt;br /&amp;gt;&quot;;&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La remarque que j'ai fait précédemment se vérifie bien, quelque ce soit le type de donnée, l'utilisation d'un itérateur dans le recordset rend le parcours des données plus simple.&lt;/p&gt;
&lt;h3&gt;Les itérateurs : conclusion&lt;/h3&gt;
&lt;p&gt;Comme on a pu le voir, l'utilisation et l'implémentation d'un itérateur est intéréssante à intégrer dans les classes de type tableau/liste/collection de données. Il rend le parcours et l'affichage des données beaucoup plus simple. Cependant, comme on a pu le voir, il n'est utilisable et utile qu'accompagné d'un autre outil qui permet la manipulation des données de la classe. C'est d'ailleurs associé à ce manipulateur que l'on va trouver des applications très intéréssantes. C'est pourquoi, dans le but de rendre cet article utile, je vous invite à lire celui sur les recordset.&lt;/p&gt;
&lt;p&gt;Pour ceux qui souhaitent télécharger les sources PHP des exemples de cet articles, cf l'annexe plus bas &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; .&lt;/p&gt;
&lt;p&gt;Note : Pour ceux qui jugent les exemples de cet article trop simples, pas assez optimisés, je tiens à rappeler que cet article à pour but l'initiation à la notion d'itérateur. J'invite tous mes lecteurs à approfondir les notions vu à travers les articles et à me poser des questions/faire des remarques sur le sujet.&lt;/p&gt;</description>
    
          <enclosure url="http://www.lain82.net/public/article_PHP/Exemple_Iterateur_php4.zip"
      length="1990" type="application/zip" />
    
    
          <comments>http://www.lain82.net/post/2008/02/20/PHP-4-Les-iterateurs#comment-form</comments>
      <wfw:comment>http://www.lain82.net/post/2008/02/20/PHP-4-Les-iterateurs#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lain82.net/feed/rss2/comments/3</wfw:commentRss>
      </item>
    
  <item>
    <title>PHP: Articles qui pourraient intéressés</title>
    <link>http://www.lain82.net/post/2008/02/20/PHP%3A-Articles-qui-pourraient-interesses</link>
    <guid isPermaLink="false">urn:md5:3282512ee4042f7b750e80825ecbdc19</guid>
    <pubDate>Wed, 20 Feb 2008 13:39:00 +0000</pubDate>
    <dc:creator>Sébastien Franzot</dc:creator>
        <category>PHP</category>
            
    <description>    &lt;p&gt;Il m'aura fallu presque 2 mois pour reprendre ce blog et y trouver une utilité. A croire que le développement Web me colle à la peau, j'ai décidé de faire partager mes connaissances dans des langages que je connais.&lt;/p&gt;


&lt;p&gt;Je vais commencer cette tache par un langage avec lequel je me suis remis à travailler dernièrement: PHP.&lt;/p&gt;


&lt;p&gt;Le but n'est pas d'enseigner les bases du langage: pour cela, des sites le feront bien mieux que moi&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.siteduzero.com/&quot; hreflang=&quot;fr&quot;&gt;Le Site du zéro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.phpdebutant.org/article118.php&quot; hreflang=&quot;fr&quot;&gt;PHP Débutant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Et l'incontournable &lt;a href=&quot;http://www.manuelphp.com/php/&quot; hreflang=&quot;fr&quot;&gt;Manuel PHP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je ne le répèterais jamais assez aux débutants: si un langage vous plait et que vous souhaitez progresser, n'hésitez pas à approfondir vos connaissances. Ne vous arrêtez pas à connaitre l'utilité d'une fonction, essayez de connaitre les fonctions qui font partis de sa famille, son fonctionnement, ses alternatives ...&lt;/p&gt;


&lt;p&gt;Pour ce qui est des articles que j'ai l'intention d'écrire, n'étant pas un professionnel du développement Web, mes morceaux de codes ne sont pas à considérer comme le code parfaitement sécurisé et optimisé. D'ailleurs, j'invite toute personne qui aurait des remarques à faire à me poster un commentaire. J'ai beaucoup de choses à apprendre à mon tour!&lt;/p&gt;


&lt;p&gt;Sur ce, je vous laisse profiter des articles actuels et futurs. Bonne lecture et bon apprentissage.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lain82.net/post/2008/02/20/PHP%3A-Articles-qui-pourraient-interesses#comment-form</comments>
      <wfw:comment>http://www.lain82.net/post/2008/02/20/PHP%3A-Articles-qui-pourraient-interesses#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lain82.net/feed/rss2/comments/2</wfw:commentRss>
      </item>
    
  <item>
    <title>Bienvenue sur mon blog</title>
    <link>http://www.lain82.net/post/2008/01/01/Bienvenue-sur-mon-blog</link>
    <guid isPermaLink="false">urn:md5:7a3346f4fa92696b3e4b7b52e0603c0f</guid>
    <pubDate>Tue, 01 Jan 2008 02:48:00 +0000</pubDate>
    <dc:creator>Sébastien Franzot</dc:creator>
        <category>Blog</category>
        <category>2008</category><category>blog</category><category>ouverture</category>    
    <description>    &lt;p&gt;Commençons simplement par vous souhaitez une bonne année 2008 ainsi que les meilleurs voeux.
Vous aurez pu le devinez, la date d'ouverture de mon Weblog n'est pas simple coïncidence mais répond à l'un de mes voeux&amp;nbsp;: Reprendre une bonne fois pour toute un blog personnel.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lain82.net/post/2008/01/01/Bienvenue-sur-mon-blog#comment-form</comments>
      <wfw:comment>http://www.lain82.net/post/2008/01/01/Bienvenue-sur-mon-blog#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lain82.net/feed/rss2/comments/1</wfw:commentRss>
      </item>
    
</channel>
</rss>