class oo
{
public $a;
private $b;
protected $c;
public function __construct()
{
$this->a = 'value of a';
$this->b = 'value of b';
$this->c = 'value of c';
}
public function __get($arg)
{
return $arg;
}
}
class foo extends oo
{
public function __get($arg)
{
return 'fake value '.$arg;
}
public function getc()
{
return $this->c;
}
}
$z = new oo();
echo "Parent class: \r\n";
echo 'a='.$z->a."\r\nb=".$z->b."\r\nc=".$z->c."\r\n";
echo "Child class: \r\n";
$q = new foo();
echo 'a='.$q->a."\r\nb=".$q->b."\r\nc=".$q->c."\r\n";
echo 'c from function: '.$q->getc()."\r\n";
if($this->_EOF()) bla.. bla..
не пойму, чем второе лучше первого (разве только нет _ - ну да вы его сами придумали).if($this->EOF) bla.. bla..
А если нет, то он поведет себя по другому?Автор оригинала: Skubent
Я не пойму чем рид-онли свойство, торчащее как паблик может помешать. Эстетические проблемы ?
А так да, гет всегда публичный.
я в шоке...Автор оригинала: hermit_refined
к тому же метод от свойства отличается не только синтаксисом, и смешивать эти понятия нельзя.
При чем здесь видимость методов, если речь идет о видимости свойств, этими методами эмулируемых?Автор оригинала: Skubent
gonza,
All overloading methods must not be defined as static. In PHP 5.0.x, all overloading methods must be defined as public. (c) мануал.
class some_parser{
protected $public = 0;
function __construct(){
$this->public++;
...
$this->public--;
}
function __call($name, $argv){
if(method_exists($this, $method = 'hidden_'.$name)){
++$this->public;
$ret_val = $this->$method($argv);
--$this->public;
return $ret_val;
}
else $this->err("Unknown method $name called");
}
function __get($name){
if( $this->public && ($name == 'EOF') ) return $this->pos == $this->sc_len;
else trigger_error("undefined property $name", E_USER_NOTICE);
}
}
Готов выслушать...Автор оригинала: Skubent
gonza, чем возвращаемое значение от переменной отличается знаешь ?
Можно... А можно читать повнимательнее. Тоже никто не запрещает...Автор оригинала: Skubent
А по второй части... Можно еще гвозди микроскопом заколачивать...
Эээ... Ничего что я сам указал на то что это не решение а костыль? И нужно было оно лишь для того что бы ответить на мой вопрос. Который был задан как раз для того что бы посмотреть, возможно ли это, как возможно и "должен ли я этого хотеть" ?Автор оригинала: hermit_refined
нешуточная пессимизация + нечитабельность.
напомни когда я рассказывал про свое понимание ООП. Откуда такие глубокие выводы?Автор оригинала: hermit_refined
а извращенность прежде всего в вашем понимании ООП.
В общем нашел как спрятать свойство, отрабатываемое __get, способ не идеальный,
- указывало на обратное.Изврат в общем... Люблю извраты...
Выделенное было лишним... Ну да ладно, флуд уже...Автор оригинала: hermit_refined
но если вы этого уже не хотите - что ж, замечательно.