2010-01-09 9 views
0

voici mon code ....Undefined variable: IdleTime

class line{ 
    function db($host, $user, $pass, $db){ 
     mysql_connect($host, $user, $pass) or die("Could Not Connect to Database or Database Does not Exists...."); 
     mysql_select_db($db) or die("Database Does not Exists...."); 
    } 

    $idletime = 300; 
    $deltime = 600; 

    function test(){ 
    echo $idletime; 
    echo idletime; 
} 

} 

et appeler cette classe comme

$w = new line(); 
$w->test(); 

mais il dit

Undefined variable: IdleTime en **** *

s'il vous plaît laissez-moi savoir ce que le problème est en fait ...

Répondre

4

Votre variable est un class property- ou, au moins, je devine que est ce que vous voulez qu'il soit ...


cette ligne dans votre méthode test:

echo $idletime; 

Essaie d'accéder à une variable définie à l'intérieur de cette méthode - pas une propriété de classe.

Et il n'y a pas une telle variable locale - d'où l'avis.


Pour accéder à une propriété de classe, vous devez utiliser $this, de cette façon:

echo $this->idletime; 


En outre, votre code est incorrect: vous devez déclarer que vos « variables » sont en effet classe propriétés - c'est à dire, vous devez utiliser certains des mots-clés visibility en face d'eux.

Voici vous classe, une fois réécrits:

class line { 
    function db($host, $user, $pass, $db) { 
     mysql_connect($host, $user, $pass) or die("Could Not Connect to Database or Database Does not Exists...."); 
     mysql_select_db($db) or die("Database Does not Exists...."); 
    } 

    protected $idletime = 300; 
    protected $deltime = 600; 

    public function test(){ 
     echo $this->idletime; 
    } 
} 

Je:

  • Définissez vos propriétés comme protected
  • Et j'utilise $this pour y accéder à l'intérieur du test méthode
  • J'ai également indiqué la méthode test est public - c'est th Par défaut, mais j'aime être explicite à ce sujet.


Ne hésitez pas à passer un peu de temps à lire la section Classes and Objects du manuel: vous apprendrez beaucoup de choses utiles ;-)

+0

+1 Je IdleTime perdre de vue que de $ est dans la classe. Supprimé ma réponse –

0

Vous devez passer les variables dans votre appel de fonction,

function test($idletime){ 
    echo $idletime; 
    echo idletime; 
} 

Ou peut-être que la variable est hors champ les définissent comme première mondiale

+0

Qu'en est-il de cette ligne qui dit: echo idletime? –