quindi sto cercando di risolvere un problema che sto avendo nella progettazione di classi PHP. Ho creato una classe base e ho assegnato variabili private. Ho classi figlio che estendono questa classe base, che fanno riferimento e modifiche a queste variabili private attraverso le funzioni della classe base. Ecco un esempio, tenere a mente Sono ancora confuso circa la differenza tra private
e protected
metodi/variabili (fatemi sapere se sto facendo male!):PHP Accesso variabile privato dal bambino
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!');
}
}
?>
Quindi mi aspetto che il risultato sia hello!
stampato sullo schermo - invece non c'è nulla. Potrebbe esserci un fondamentale fraintendimento delle lezioni da parte mia, o forse sto solo facendo qualcosa di sbagliato. Qualsiasi consiglio è molto apprezzato! Grazie.
EDIT:
Grazie a tutti coloro che hanno contribuito una risposta - Credo che, nonostante le ottime soluzioni, che le classi figlie sono in realtà non è quello che mi serve - sembra delegare classi può essere più utile a questo punto, come Non ho davvero bisogno di fare riferimento alle funzioni di base all'interno delle altre classi.
prova echo ($ sub> getTest()); – bumperbox
Prova [PHP5 OOP] (http://www.php.net/oop5). – meze
Non c'è alcun 'echo' o 'print' per produrre qualcosa sullo schermo – zerkms