Заметили что-то о классах PHP, и я не знаю, если это ошибка или почему это работает, это код:PHP класс частной собственности и метод
<?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();
И результат не является ошибкой, как Я ожидал, так как я вызываю частный метод (проверен на PHP 5.3.10-1ubuntu3.7 с Suhosin-Patch). В результате «Prop имеет значение: значение»
Как бы вы ожидали, что частные методы будут называться вместо этого, если не из общедоступных методов? – str
Чтобы быть конкретным, вы не вызываете частный метод, вы вызываете открытый метод, который вызывает частный метод. Открытый метод имеет доступ к частному методу, но вызов '$ obj-> echoProp();' будет терпеть неудачу, потому что в этом случае вы вызываете частный метод. Если ваше ожидание было правдой, ничто не могло бы вызвать частный метод. – djheru