Page 1 sur 1

Ma premiere classe

Posté : 03 févr. 2012, 22:21
par djun
Je vais tenter de prendre une dernière chance. Mais, il y a une erreur que je comprends pas.:

<?php

class Ninja
{
private $Force ;

public function __construct()
{
$this->Force = 10 ;
}

public function __get($object)
{
if ($object == 'Force')
{
return $this->Force;
}
else
{
return null;
}
public function __set($object, $valeur)
{
if ($object == 'Force')
{
if (ctype_digit($valeur))
{
$this->Force = $valeur;
}
else
{
throw new Exception('La valeur doit être un numéro');
}
}
}
}

$Mario = new Ninja() ;
$Mario->F[/php]orce = 20 ;

echo $Mario->__get('Force') ;
?>


( ! ) Parse error: syntax error, unexpected T_PUBLIC in C:\wamp\www\pizza.php on line 22

Re: Ma premiere classe

Posté : 03 févr. 2012, 23:10
par sirakawa
j'ai sans doute fumé ma carpette au lieu de la sucer (oui je suis ,un suceur de carpette, à la descente de lit).
J'ajouterai que certains indiquent dans leur code la ligne corrrespondant au numéro affiché par PHP, ce qui simplifie les choses.

Re: Ma premiere classe

Posté : 03 févr. 2012, 23:23
par djun
Modifier

Re: Ma premiere classe

Posté : 04 févr. 2012, 00:45
par moogli
http://www.netbeans.org tu dl et installé le soft ça t'indiquera beaucoup d'erreur de syntaxe comme l'accolade qui te manque avant le mot clef public sur la ligne en rouge.

Une parse error c'est généralement une erreur de syntaxe avant la ligne incriminée.


Je te conseil aussi d'indenter ton code tu verrai ce genre d'erreur rapidement.
Emploi des convention de codage afin d'éviter ça, par exemple celle utilisée par java (java style ou un truc du genre que ça s'appel).


@+

Re: Ma premiere classe

Posté : 04 févr. 2012, 00:53
par djun
Je ne peux pas telecharger des choses.

Re: Ma premiere classe

Posté : 04 févr. 2012, 00:55
par djun
Mon _set marche pas:

Code : Tout sélectionner

<?php class Ninja { private $Force; public function __construct() { $this->Force = 10; } public function __get($object) { if ($object == 'Force') { return $this->Force; } return null; } public function __set($object, $valeur) { if ($object == 'Force') { if (ctype_digit($valeur)) { $this->Force = $valeur; } } } } $Mario = new Ninja(); $Mario->Force = 20 ; echo $Mario->Force ; ?>
Sa n'affiche que la force de mario est 10.

Re: Ma premiere classe

Posté : 04 févr. 2012, 09:26
par xTG
La réponse dans la doc PHP :
<?php

$numeric_string = '42';
$integer        = 42;

ctype_digit($numeric_string);  // true
ctype_digit($integer);         // false (ASCII 42 is the * character)

is_numeric($numeric_string);   // true
is_numeric($integer);          // true
?>
Cette fonction attend une chaîne de caractère, quand tu lui passes un entier elle prend la correspondance en caractère.
Or le caractère dont la valeur ASCII est 20 n'est pas un entier.

Re: Ma premiere classe

Posté : 04 févr. 2012, 14:16
par djun
SA MARCHE, I LOVE YOU QUE DIEU TE BENISSE.