Page 1 sur 1

Je ne vois pas d'erreur.

Posté : 29 janv. 2012, 15:33
par djun
J'ai passé toute ma journée a chercher mon erreur, mais j'ai rien trouvé. Mon erreur est:

( ! ) Fatal error: Call to undefined function _construct() in C:\wamp\www\plane.php on line 25



<?php

class Ninja
{
private $Force ;

public function _set($objet, $valeur)
{
$this->$objet = $valeur ;
}


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

public function _get($objet) 
{
return $this->$objet ;
}
}

$Mario = new Ninja() ;
$Mario = _construct() ;
$Mario->_set($Force, 20) ;
$Mario->_get($Force) ;

?>

Re: Je ne vois pas d'erreur.

Posté : 29 janv. 2012, 15:40
par xTG
Aille...
Va falloir revoir sérieusement la programmation objet...
__set, __construct, __get et compagnie sont appelées automatiquement selon certaines actions simples. (avec deux tirets bas et non un)
Ce sont des méthodes magiques !

Exemple :
<?php
class test{
  private $val;
  public function __construct(){
    echo 'constructeur <br />';
    $this->val = 0;
  }
  public function __get($objet){
    echo 'accès à l'attribut ' .$objet.'<br />';
    return (isSet($this->$objet)) ? $this->$val : null;
  }
  public function __set($objet, $val){
    echo 'mise à jour de l'attribut ' . $objet .'<br />';
    if( isSet($this->$objet) )
      $this->$objet = $val;
  }
}
echo '------- instantiation -------<br />';
$test = new test();
echo '------- get -------<br />';
echo $test->val;
echo '------- set-------<br />';
$test->val = 1;
A lire : http://fr.php.net/manual/fr/oop5.intro.php

Re: Je ne vois pas d'erreur.

Posté : 29 janv. 2012, 23:12
par Aureusms
Salut Xtg,

Pkoi tu ne fais pas :
class test{
  private $val = 0;
au lieu d'utiliser __contruct ?

Re: Je ne vois pas d'erreur.

Posté : 30 janv. 2012, 10:54
par xTG
C'était pour lui montrer un constructeur qui ne soit pas vide.
De manière à voir son second topic il a strictement pas lu ma réponse ou bien il l'a pas compris...

Re: Je ne vois pas d'erreur.

Posté : 30 janv. 2012, 11:35
par moogli
C'était pour lui montrer un constructeur qui ne soit pas vide.
De manière à voir son second topic il a strictement pas lu ma réponse ou bien il l'a pas compris...

je pense qu'il a du mal avec les objets :/