De variabele is toch private? Je kan de variabele alleen in de body class zelf gebruiken, als je de variabele vanuit een andere plaats wil aanpassen of uitlezen zul je setters en getters moeten gebruiken o.i.d.
Protected betekent dat classes die de huidige class extenden de vars kunnen gebruiken.
Dus om te doen wat jij wilt moet idd de var op public gezet worden.
En voor een array is print_r, niet print.
En als je hem niet op public wilt zetten kan je met getters / setters werken.
<?php
class body
{
private
$parts = null;
public function setParts($parts)
{
$this->parts = $parts;
}
public function getParts()
{
return $this->parts;
}
}
$subject = new body();
$subject->setParts(array('once', 'twice'));
print_r($subject->getParts());
?>
Er zijn 3 soorten visibility: Public
Je kunt een variabele dan aanroepen vanuit elke andere class, maar dit wordt meestal gezien als bad practice. Protected
Je kunt de variabele in de class zelf aanroepen en in iedere class die een child class is. Je kunt dus zoiets doen:
<?php
class A extends body
{
public function print()
{
print_r($this->parts);
}
}
$A = new A();
echo $A->print();
?>
Maar dit is in jouw geval niet van toepassing. Private
Alleen de class zelf kan de variabele aanroepen, meestal gebruik je dit dus in combinatie met setters en getters:
<?php
class body
{
private $parts = NULL;
public function setParts($parts)
{
$this->parts = $parts;
}
public function getParts()
{
return $this->parts;
}
}
$subject = new body();
$subject->setParts(array('once', 'twice'));
print_r($subject->parts);
?>