, also versuche ich ein Problem zu lösen, das ich beim Entwerfen von PHP-Klassen habe. Ich habe eine Basisklasse erstellt und private Variablen zugewiesen. Ich habe untergeordnete Klassen, die diese Basisklasse erweitern, die durch Funktionen der Basisklasse auf diese privaten Variablen verweisen und sie ändern. Hier ist ein Beispiel, im Auge behalten bin ich immer noch verwirrt über den Unterschied zwischen private
und protected
Methoden/Variablen (lassen Sie mich wissen, wenn ich es falsch mache!):PHP Privater Variablenzugriff von Kind
base.class.php
<?php
class Base {
private $test;
public function __construct(){
require('sub.class.php');
$sub = new Sub;
echo($this->getTest());
}
public function getTest(){
return $this->test;
}
protected function setTest($value){
$this->test = $value;
}
}
?>
sub.class.php
<?php
class Sub extends Base {
public function __construct(){
parent::setTest('hello!');
}
}
?>
Also würde ich das Ergebnis erwarten hello!
auf dem Bildschirm gedruckt werden - stattdessen gibt es nichts. Es könnte ein grundlegendes Missverständnis der Klassen von mir geben, oder vielleicht mache ich nur etwas falsch. Jede Anleitung wird sehr geschätzt! Vielen Dank.
EDIT:
Sie alle danken, die eine Antwort beigetragen - ich glaube, trotz der ausgezeichneten Lösungen sind, dass Kinder Klassen eigentlich nicht, was ich brauche - es scheint Klassen delegieren an dieser Stelle kann nützlicher sein, als Ich muss nicht wirklich auf die Base-Funktionen innerhalb der anderen Klassen verweisen.
try Echo ($ sub> getTest()); – bumperbox
Versuchen Sie [PHP5 OOP] (http://www.php.net/oop5). – meze
Es gibt kein 'echo' oder' print', um etwas auf dem Bildschirm auszugeben – zerkms