Je ne trouve pas d'erreur

Eléphant du PHP | 226 Messages

31 janv. 2012, 16:00

Mon code est:
<?php
 
class Ninja
{
private $Force ;
 
public function __construct()
{ 
$this->Force = 10 ;
}
 
public function _get($objet)
{
if($Force > 0)
{
return $this->$objet ;
}
}
 
public function _set($objet, $valeur)
{
if(ctype_digit($valeur))
{
$this->$objet = $valeur ;
}
}
}
 
$Mario = new Ninja() ;
$Mario->_set($Force, 20)

$format = 'Mario a une force de %u decanewton' ;
$num = _get($Force) ;

echo sprintf($format, $num) ;
?>
mon erreur est:

( ! ) Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\peace.php on line 32
Djun, L'inoubliable et l'incontournable

Eléphant du PHP | 209 Messages

31 janv. 2012, 16:16

Il manque un point virgule ligne 30...
Tu vas avoir d'autres erreurs notamment ligne 14 pour ton $Force qui traîne sans être instancié..

Eléphant du PHP | 226 Messages

31 janv. 2012, 19:12

Il manque un point virgule ligne 30...
Tu vas avoir d'autres erreurs notamment ligne 14 pour ton $Force qui traîne sans être instancié..
Merci pour l'aide.
Djun, L'inoubliable et l'incontournable

Eléphant du PHP | 226 Messages

31 janv. 2012, 19:21

Je l'ai regler:
<?php
 
class Ninja
{
private $Force ;
 
public function __construct()
{ 
$this->Force = 10 ;
}
 
public function __get($objet)
{
if($this->$Force > 0)
{
return $this->$objet ;
}
}
 
public function __set($objet, $attr, $valeur)
{
if(ctype_digit($valeur))
{
$objet->$attr = $valeur ;
}
}
 
$Mario = new Ninja() ;
__set($Mario, $Force, 20) ;


$Format = 'Mario a une force de %u' ;
$num = $Mario->__get($Force) ;

echo sprint($Format, $num) ;
?>
mais sa a detecter une autre erreur:


( ! ) Fatal error: Method Ninja::__set() must take exactly 2 arguments in C:\wamp\www\peace.php on line 26
Djun, L'inoubliable et l'incontournable

ViPHP
xTG
ViPHP | 7331 Messages

31 janv. 2012, 19:34

Les méthodes magiques ne peuvent être redéfinies.
De plus tu la redéfinies pour rien, car $attr c'est le rôle de $objet en fait...

Eléphant du PHP | 226 Messages

31 janv. 2012, 19:43

Il y a des milliards d'erreur:
<?php
 
class Ninja
{
private $Force ;
 
public function __construct()
{ 
$this->Force = 10 ;
}
 
public function __get($objet)
{
if($this->$Force > 0)
{
return $this->$objet ;
}
}
 
public function __set($attr, $valeur)
{
if(ctype_digit($valeur))
{
$this->$attr = $valeur ;
}
}
 
$Mario = new Ninja() ;
__set($Mario, $Force, 20) ;


$Format = 'Mario a une force de %u' ;
$num = $Mario->__get($Force) ;

echo sprint($Format, $num) ;
?>

( ! ) Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\wamp\www\peace.php on line 28
Djun, L'inoubliable et l'incontournable