private property

10/12/2015 - 13:06 von Jan Novak | Report spam
Hallo,
ich bin mir nicht sicher ob meine Vorgehensweise korrekt ist, wenn ich
die Eigenschaft auf public setze, weil ich sonst einen "Cannot access
private property" error bekomme.

Aufruf:

$archives = [ ... hole die daten aus der db ...]
$a = new ArchivListUi();
$a->setArchives($archives);
$a->show('/template/archiv_list_ui.html');

...

class ArchivListUi extends generalClassFunctions{
private $archives;
public function setArchives($archives){
$this->archives = $archives;
}
}

...
class generalClassFunctions{
public function show($htmlfile){
global $_lang;
global $_rootdir;
$file = $_rootdir. $htmlfile;
if (file_exists($file)){
ob_start();
include $file;
$output = ob_get_contents();
ob_end_clean();
echo $output;
}
else {
die ('could not find template: ' .$file);
}
}
}


Wenn in der Klasse "ArchivListUi" die Eigenschaft $archives als public
deklariert wird, funktiert es erwartungsgemàß.
Ist das die richtige Vorgehensweise, die Eigenschaft als public zu
deklarieren?

Jan
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
10/12/2015 - 14:09 | Warnen spam
Jan Novak wrote:

$archives = [ ... hole die daten aus der db ...]
$a = new ArchivListUi();
$a->setArchives($archives);
$a->show('/template/archiv_list_ui.html');

...

class ArchivListUi extends generalClassFunctions{
private $archives;
public function setArchives($archives){
$this->archives = $archives;
}
}

[…]
Wenn in der Klasse "ArchivListUi" die Eigenschaft $archives als public
deklariert wird, funktiert es erwartungsgemàß.
Ist das die richtige Vorgehensweise, die Eigenschaft als public zu
deklarieren?



Nein; Stichwort: „Datenkapselung“ (“information hiding”).

PointedEars
Zend Certified PHP Engineer
Twitter: @PointedEars2
Please do not cc me. / Bitte keine Kopien per E-Mail.

Ähnliche fragen