2012-08-26 2 views
0

J'ai 3 noms de classe: "ClassA", "ClassB", "ClassC".référence à un objet de la classe étendue en PHP

Classe B s'étend Classe A. ClassC.php inclus ClassA.php puis ClassB.php.

J'ai un tableau $ ARRAYA dans ClassC: var $arrayA;

Comment puis-je faire les choses ci-dessous?

_ Quand je fais une instance de ClassC dans ClassA comme: $this->ClassC,

$ ARRAYA dans ClassA comme: $this->ClassC->arrayA,

ARRAYA valeur de a été modifiée par le processus de La valeur de ClassC et de $this->ClassC->arrayA a été changée aussi!

_ Appelez $this->ClassC->arrayA comme objet dans Classe A.

_ Utilisez en classe B.

+3

Votre question n'est pas très claire. Pourriez-vous poster un code réel indiquant ce que vous essayez d'accomplir? – Barmar

+1

Aussi, soyons * très * intentionnels à propos de nos mots dans des contextes techniques. L'expression «ClassC inclus ClassA puis ClassB» n'a pas de sens, car les classes n'incluent pas les choses. Voulez-vous dire "s'étend"? Ou juste que le fichier ClassC est défini dans un include PHP des fichiers A et B sont-ils définis? –

+0

Oh désolé! Je veux dire ClassC.php inclus ClassA.php! Je suis tellement désolé de cette erreur –

Répondre

1

Si je suis bien, l'essence de la réponse est que les objets ne sont pas « copiés » dans chaque contexte qui les références, ils sont « souligné ». Disons que vous avez un objet Personne, et que cette personne a une propriété appelée "ville natale" qui est une instance de Ville. En pseudo-code très généralisé:

Town->name = "Portland"; 
Person->hometown = Town; 
Person->hometown->name = "Detroit"; 
echo Town->name; 

// output is "Detroit" 
+0

Merci l'homme! J'ai trouvé une autre façon de faire les choses que j'ai posté ci-dessus, mais ce n'est pas mon souhait (je parle de mon chemin, ne vous méprenez pas: D). J'espère que c'est comme ça: [link about it] (http://stackoverflow.com/questions/12120443/having-trouble-when-loading-class-throught-another-class-in-php) –

Questions connexes