die Frage ist einfach. Ich habe eine abstrakte Basisklasse (Person). Daraus habe ich eine weitere Klasse (Patienten) erweitert.php verhindern Eltern Zugriff auf untergeordnete Eigenschaften
Ich speichere persönliche Informationen (z. B. Vorname, Nachname) in PERSONS-Tabelle [es gibt eine ADD-Funktion. ]. Patientenspezifische Informationen (wie Krankheit, Medikamente, ...) werden in einer separaten PATIENTEN-Klasse gespeichert. [Es gibt eine ADD-Funktion, die den Elternteil aufruft, dann etwas Code].
Wie kann ich verhindern, dass die Funktion zum Hinzufügen von Personen auf Eigenschaften zugreift, die im Kind definiert sind, Patienten?
Um es deutlicher zu machen, hier ist ein Beispielcode:
class P {
public P_var = 'Anoush' ;
public function add()
{
// find all properties:
foreach ($this as $prop => $val)
{
$insertables [$prop] = $val ;
}
// insert all VALUES FIELDSET etc. based on the array created above
}
class CH extends P {
public CH_var1 = 'ravan' ;
public CH_var2 = 'something' ;
}
Dann, wenn ich hinzufügen, nennen, die $insertables
enthält P_var, CH_var1, CH_var2. Ich möchte nur, dass es P_var hat.
Dank
Wenn Patienteneigenschaften nicht "public" sind, kann die Elternklasse sie nicht sehen –
In dieser Situation kann ich das 'person' Objekt verwenden Nur –
Sie müssen mehr Code posten, damit wir Ihre Klassenimplementierungen sehen können .. Die untergeordneten Klassen geben keine zusätzlichen Informationen an die übergeordneten Klassen zurück d Wenn der Elternteil "abstrakt" ist, kann er nicht selbst instanziiert werden. –