2014-06-08 7 views
0

J'ai cet exemple:PHP comment appeler/enregistrer une variable publique dans une classe

class test_names { 
     public name = 'ralph'; 

     function dispname() { 
      return $this->name; 
     } 
    } 

$test = new test_names; 
$test->name = 'John'; 
$test->dispname; 

maintenant le résultat sera « John » parce que je sauvé que, dans de public var

Maintenant, je un autre fichier appelé test2.php et je le fais:

$test = new test_names; 
    $test->dispname; 

le résultat sera « ralph » mais je ne veux pas, je veux que ce soit « John » (cette valeur avant que je me suis fixé)

Comment puis-je y arriver?

+1

Quelle est la relation entre les deux fichiers php? – Jon

+1

Utilisez une variable statique 'nom'. –

+0

Oh désolé, le premier fichier s'appelle class.test_names.php, je mets la classe ici. Ensuite, j'ai un fichier appelé test1.php là j'appelle la classe et donne le nom à "john". Et j'ai un autre fichier appelé test2.php: Là j'appelle la classe et affiche simplement le nom, et je veux que ce soit "John" comme je l'ai défini dans test1.php –

Répondre

0

Dont instancier la classe à nouveau comme vous l'avez déjà fait:

remplacer

$test = new test_names; 
    $test->dispname; 

par

$test->dispname; 
+0

Oui je sais, mais j'instancie la classe dans test1.php et maintenant je veux utiliser les mêmes classes aussi dans test2.php donc j'ai besoin de l'instancier à nouveau dans test2.php? –

+2

Il existe une différence entre les classes et les objets que vous en créez (instances). Quand vous 'new Class' quelque chose vous obtenez une instance de cette classe. Toutes les propriétés non statiques sont uniquement pour cette instance. Voir http://stackoverflow.com/questions/2206387/what-is-a-class-in-php/2206835#2206835 – Gordon

Questions connexes