zauważył coś na temat klas PHP, a ja nie wiem, czy jest to błąd i dlaczego to działa, jest to kod:klasa PHP własność prywatna i sposób
<?php
class A {
private $prop = 'value';
public function fun()
{
$obj = new A;
$obj->echoProp();
}
private function echoProp()
{
echo 'Prop has value: '.$this->prop;
}
}
$obj = new A;
$obj->fun();
A wynik nie jest błąd jako Spodziewałem się, ponieważ nazywam metodę prywatną (testowaną na PHP 5.3.10-1ubuntu3.7 z łatką Suhosin). Rezultatem jest "Prop ma wartość: wartość"
Jak można się spodziewać prywatnych metod, które można nazwać, jeśli nie z publicznych metod? – str
Mówiąc konkretnie, NIE dzwonisz do metody prywatnej, nazywasz publiczną metodę, która wywołuje metodę prywatną. Metoda publiczna ma dostęp do metody prywatnej, ale wywołanie '$ obj-> echoProp();' nie powiedzie się, ponieważ w tym przypadku wywołujesz metodę prywatną. Jeśli twoje oczekiwania były prawdziwe, nic nie byłoby w stanie wywołać metody prywatnej. – djheru