Ma premiere classe

Eléphant du PHP | 226 Messages

03 févr. 2012, 22:21

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
Modifié en dernier par djun le 03 févr. 2012, 23:23, modifié 1 fois.
Djun, L'inoubliable et l'incontournable

Mammouth du PHP | 2278 Messages

03 févr. 2012, 23:10

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.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 226 Messages

03 févr. 2012, 23:23

Modifier
Djun, L'inoubliable et l'incontournable

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 févr. 2012, 00:45

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).


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 226 Messages

04 févr. 2012, 00:53

Je ne peux pas telecharger des choses.
Djun, L'inoubliable et l'incontournable

Eléphant du PHP | 226 Messages

04 févr. 2012, 00:55

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.
Djun, L'inoubliable et l'incontournable

ViPHP
xTG
ViPHP | 7331 Messages

04 févr. 2012, 09:26

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.

Eléphant du PHP | 226 Messages

04 févr. 2012, 14:16

SA MARCHE, I LOVE YOU QUE DIEU TE BENISSE.
Djun, L'inoubliable et l'incontournable