notato qualcosa sulle classi di PHP e non so se si tratta di un bug o perché funziona, questo è il codice:classe PHP proprietà privata e il metodo
<?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();
E il risultato non è un errore come Mi aspettavo dal momento che sto chiamando un metodo privato (testato su PHP 5.3.10-1ubuntu3.7 con Suhosin-Patch). Il risultato è "Prop ha valore: valore"
Come ti aspetteresti che vengano chiamati i metodi privati se non dai metodi pubblici? – str
Per essere precisi, NON stai chiamando un metodo privato, stai chiamando un metodo pubblico che chiama il metodo privato. Il metodo pubblico ha accesso al metodo privato, ma chiamando '$ obj-> echoProp();' fallirà perché in quel caso stai chiamando il metodo privato. Se la tua aspettativa era vera, nulla sarebbe in grado di chiamare un metodo privato. – djheru