<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.oop5.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'language.oop5.references.php',
    1 => 'Objets et r&eacute;f&eacute;rences',
    2 => 'Objets et r&eacute;f&eacute;rences',
  ),
  'up' => 
  array (
    0 => 'language.oop5.php',
    1 => 'Les classes et les objets',
  ),
  'prev' => 
  array (
    0 => 'language.oop5.late-static-bindings.php',
    1 => 'Late Static Bindings (R&eacute;solution statique &agrave; la vol&eacute;e)',
  ),
  'next' => 
  array (
    0 => 'language.oop5.serialization.php',
    1 => 'S&eacute;rialisation d\'objets',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'language/oop5/references.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.oop5.references" class="sect1">
  <h2 class="title">Objets et références</h2>
  <p class="para">
   Un des piliers de la POO de PHP est le fait que les 
   &quot;objets sont passés par référence par défaut&quot;. Ce n&#039;est pas complètement vrai. 
   Cette section rectifie cette généralisation avec quelques exemples.
  </p>

  <p class="para">
   Une référence PHP est un alias, qui permet à deux variables différentes de
   représenter la même valeur. Dans PHP, une variable objet
   ne contient plus l&#039;objet en lui-même comme valeur. Elle contient seulement un identifiant
   d&#039;objet, qui permet aux accesseurs d&#039;objets de trouver cet objet.
   Lorsque l&#039;objet est utilisé comme argument, retourné par une fonction,
   ou assigné à une autre variable, les différentes variables ne sont pas
   des alias : elles contiennent des copies de l&#039;identifiant, qui pointent sur
   le même objet.
  </p>

  <div class="example" id="example-1">
   <p><strong>Exemple #1 Références et Objets</strong></p>
   <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">A </span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$foo </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />}  <br /><br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= new </span><span style="color: #0000BB">A</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= </span><span style="color: #0000BB">$a</span><span style="color: #007700">;     </span><span style="color: #FF8000">// $a et $b sont des copies du même identifiant<br />             // ($a) = ($b) = &lt;id&gt;<br /></span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">$a</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo</span><span style="color: #007700">.</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /><br /></span><span style="color: #0000BB">$c </span><span style="color: #007700">= new </span><span style="color: #0000BB">A</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$d </span><span style="color: #007700">= &amp;</span><span style="color: #0000BB">$c</span><span style="color: #007700">;    </span><span style="color: #FF8000">// $c et $d sont des références<br />             // ($c,$d) = &lt;id&gt;<br /><br /></span><span style="color: #0000BB">$d</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">$c</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo</span><span style="color: #007700">.</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /><br /></span><span style="color: #0000BB">$e </span><span style="color: #007700">= new </span><span style="color: #0000BB">A</span><span style="color: #007700">;<br /><br />function </span><span style="color: #0000BB">foo</span><span style="color: #007700">(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">) {<br />    </span><span style="color: #FF8000">// ($obj) = ($e) = &lt;id&gt;<br />    </span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo</span><span style="color: #007700">.</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>L&#039;exemple ci-dessus va afficher :</p></div>
   <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
2
2
2
</pre></div>
   </div>
  </div>
 </div><?php manual_footer($setup); ?>