Mammouth du PHP |
19672 Messages
14 nov. 2005, 23:28
Pas juste ça: il y a mélange php4 et php5 : l'interface, c'est de l'objet php5: donc le constructeur a un nom qui lui est réservé: __construct() et non le nom de la classe. Ce qui donnerait au final:
<?php
interface CNombre
{
function ajoute ( CNombre $cl);
}
class CReel implements CNombre
{
private $val = 0;
function __construct($valn)
{
$this->val = $valn;
}
function ajoute (CNombre $cl)
{
$this->val += $cl->val;
}
}
class CEntier implements CNombre
{
private $val = 0;
function __construct($valn)
{
$this->val = $valn;
}
function ajoute(CNombre $cl)
{
$this->val += $cl->val;
}
}
$entier = new Centier(6);
$reel = new CReel(5.8);
$entier->ajoute($reel);
$reel->ajoute($entier);
?>
Et si tu veux faire les choses vraiment dans les règles de l'art, il faudrait commenter ton code comme ceci (à toi de mettre les commentaires) :
<?php
/**
* Enter description here...
*
*/
interface CNombre
{
/**
* Enter description here...
*
* @param CNombre $cl
*/
function ajoute ( CNombre $cl);
}
/**
* Enter description here...
*
*/
class CReel implements CNombre
{
/**
* Enter description here...
*
* @var unknown_type
*/
private $val = 0;
/**
* Enter description here...
*
* @param unknown_type $valn
*/
function __construct($valn)
{
$this->val = $valn;
}
/**
* Enter description here...
*
* @param CNombre $cl
*/
function ajoute (CNombre $cl)
{
$this->val += $cl->val;
}
}
/**
* Enter description here...
*
*/
class CEntier implements CNombre
{
/**
* Enter description here...
*
* @var unknown_type
*/
private $val = 0;
/**
* Enter description here...
*
* @param unknown_type $valn
*/
function __construct($valn)
{
$this->val = $valn;
}
/**
* Enter description here...
*
* @param CNombre $cl
*/
function ajoute(CNombre $cl)
{
$this->val += $cl->val;
}
}
$entier = new Centier(6);
$reel = new CReel(5.8);
$entier->ajoute($reel);
$reel->ajoute($entier);
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 