OVH Cloud OVH Cloud

Probleme avec __construct

12 réponses
Avatar
Jeremie
Bonjour,

Je viens de créer deux classes, et dans mon programme principal, la création
de l'objet Douchette bugue (une fonction __construct a été définie dans ma
classe Douchette, mais on dirait que rien ne se passe). C'est ma première
appli Orientée Objet, si ovus voyez l'erreur, merci de m'aider.

Ci-dessous, l& classe et le programme principal (les deux étant dans des
répertoires différents):
<?
class Douchette {
private $vitesse;
private $bits;
private $stop;
private $parite;
private $fp; //Pointeur DIO


public function __construct($v, $b, $s, $p) {
echo('Configuration de la douchette en cours');
$this->vitesse=$v;
$this->bits=$b;
$this->stop=$s;
$this->parite=$p;

$this->fp=dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY |
O_NDELAY);
dio_tcsetattr($this->fp, array(
'baud' => $this->vitesse,
'bits' => $this->bits,
'stop' => $this->stop,
'parity' => $this->parite
));
echo('Douchette configurée\n');
}

public function __destruct() {
dio_close($this->fp);
unset($this->fp);
}

public function lire() {
$ligne=dio_read($this->fp);
return $ligne;
}
}
?>


#!/usr/bin/php5-cgi

<?
require_once('../include/connexion.php');
require_once('../classes/douchette.class.php');

echo('Création d\'une connexion à la douchette série...\n');
$dc = new Douchette(1200, 8, 1, 0);
// $dc->__construct(1200, 8, 1, 0);
echo(get_class($dc) . "\n");
while(1) {
$dc->lire();
}
unset($dc);
?>

Merci pour votre aide


Jérémie

2 réponses

1 2
Avatar
Antoine Polatouche
Jeremie Picaude wrote:
Pourquoi avoir une classe à plusieurs endroits?
Non, chez moi toutes les classes sont dans un répertoire dédié, et une
seul classe Douchette existe...
Pour tester des modifs en vitesse, et en laissant traîner des copies par

négligence... Ca m'arrive assez souvent. Je sais que ce n'est pas une
bonne pratique ;-) Mais ce genre de situation explique bien pourquoi une
fonction n'exécute pas miraculeusement une instruction simpliste.

Avatar
Marc

Pour tester des modifs en vitesse, et en laissant traîner des copies par
négligence... Ca m'arrive assez souvent. Je sais que ce n'est pas une
bonne pratique ;-) Mais ce genre de situation explique bien pourquoi une
fonction n'exécute pas miraculeusement une instruction simpliste.


oui oui, ce genre de gag est arrivé a tout le monde ;-)
* editer un fichier,
* executer un autre fichier sans s'en rendre compte (une copie
de sauvegarde dans un autre repertoire par exemple)

1 2