<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Webaide.net</title>
<link>http://www.webaide.net</link>
<description>Ressources pour webmaster, et sur l informatique en general</description>
<language>fr</language>
<generator>http://www.webaidenet/</generator>

<item>
  <title>PHP: Programmation orientée objet</title>
  <link>http://www.webaide.net/Programmation-orient-e-objet-aide-156.html</link>
  <guid >http://www.webaide.net/Programmation-orient-e-objet-aide-156.html</guid>
  <dc:date>2007-07-02T12:11:19Z</dc:date>
  <dc:format>text/html</dc:format>
  <dc:language>fr-fr</dc:language>
  <dc:creator>spado</dc:creator>
  <category domain="http://www.webaide.nethttp://www.webaide.net/PHP-dossier-17.html">PHP</category>
  <description>Je vous présente ici une petite description de la programmation orientée objet en PHP.</description>
<content:encoded><![CDATA[<p>PHP à été écris à la base en langage procédural ( PHP4 est écris en C ) mais des extensions de la programmation objet ont été rajouté.
<br/>Une classe est une structure qui regroupe des attributs et des fonctions (appelées méthodes) qui n'agissent qu'à l'intérieure de l'objet de la classe. Les constructeurs (optionnel) sont des méthodes qui portent le nom de la classe et qui sont appelé pour créer l'objet.
<br/></p>

<h2>Définir une classe:</h2>

<p></p>

<div class='code'>class maclasse {<br/>
// déclaration des attributs.<br/>
// déclaration du constructeur et des méthodes.<br/>
}</div>

<p>
<br/>Exemple, la classe voiture:
<br/></p>

<div class='code'>class voiture {<br/>
var $marque, $model, $annee;<br/>
}<br/>
<br/>
// Création de l'objet $v<br/>
$v = new voiture;<br/>
<br/>
// On donne une valeur aux attributs marque, model, annee<br/>
$v-&gt;marque = "peugeot";<br/>
$v-&gt;model = "306";<br/>
$v-&gt;annee = "1999";</div>

<p></p>

<h2>Le constructeur&nbsp;:</h2>

<p>
<br/>Le constructeur porte le nom de la classe, et il sera appelé lors de la création de l'objet voiture. Il fonctionne comme une méthode.
<br/></p>

<div class='code'>class voiture {<br/>
var $marque, $model, $annee, $vendu;<br/>
<br/>
function voiture($marque,$model,$a,$nb_vente) {<br/>
$this-&gt;marque = $marque;<br/>
$this-&gt;model = $model;<br/>
$this-&gt;annee = $a;<br/>
$this-&gt;vendu = $nb_vente;<br/>
}<br/>
}<br/>
<br/>
$voiture = new voiture("peugeot","306","1999",7);<br/>
<br/>
echo "Nous avons vendu $voiture-&gt;vendu voitures model $voiture-&gt;model ";<br/>
// Nous avons vendu 7 voitures model 306</div>

<p></p>

<h2>Les méthodes</h2>

<p></p>

<div class='code'>class voiture {<br/>
var $marque, $model, $annee;<br/>
<br/>
function voiture($marque,$model,$a,$nb_vente) {<br/>
$this-&gt;marque = $marque;<br/>
$this-&gt;model = $model;<br/>
$this-&gt;annee = $a;<br/>
$this-&gt;vendu = $nb_vente;<br/>
}<br/>
<br/>
function nouvelle_vente() {<br/>
$this-&gt;vendu = ($this-&gt;vendu+1);<br/>
}<br/>
}<br/>
<br/>
$voiture = new voiture("peugeot","306","1999",7);<br/>
$voiture-&gt;nouvelle_vente();<br/>
<br/>
echo "Nous avons vendu $voiture-&gt;vendu voitures model $voiture-&gt;model ";<br/>
// Nous avons vendu 8 voitures model 306</div>

<p>
<br/></p>

<h2>Les objet en PHP5</h2>

<p>
<br/>En PHP5 les constructeur ne portent plus le nom de la classe, PHP5 implémente des méthodes spécialement conçues pour les constructeurs et les destructeurs.
<br/></p>

<div class='code'>class myClass {<br/>
function __construct() {<br/>
echo 'Constructeur déclenché&lt;br&gt;';<br/>
}<br/>
<br/>
function my_exemple(){<br/>
echo 'Exemple Objet&lt;br&gt;';<br/>
}<br/>
<br/>
function __destruct() {<br/>
echo 'Destructeur déclenché';<br/>
}<br/>
}<br/>
<br/>
$obj = new myClass();<br/>
// à la création de l'objet le constructeur est déclenché<br/>
<br/>
$obj-&gt;my_exemple();<br/>
// Appel d'une méthode, comme il n'y a plus d'objet $obj dans le script, le destructeur sera déclenché.</div>>]]></content:encoded>
</item>
</channel>
</rss>



