Originariamente inviato da piero.mac
Agevola ... agevola..
Questo codice dà questo errore:codice:<?php class Prova { protected $_data = 5; function __get($varName) { $varName = '_'.$varName; return $this->$varName++; } } class Prova2 extends Prova { function __get($varName) { return parent::__get($varName); } } $a = new Prova; $b = new Prova2; $c = $a; for($i = 0; $i < 10; $i++) { if($c instanceof Prova2) $c = $a; else $c = $b; echo $c->data; } ?>
Fatal error: Cannot access protected property Prova2::$_data in d:\localhost\www\buzzler\prova_static.php on line 32
Se invece eliminate il ciclo for e prendete il blocco in grassetto, e lo ripetete N volte direttamente nel codice:
tutto funziona senza erroricodice:if($c instanceof Prova2) $c = $a; else $c = $b; echo $c->data; if($c instanceof Prova2) $c = $a; else $c = $b; echo $c->data; if($c instanceof Prova2) $c = $a; else $c = $b; echo $c->data; if($c instanceof Prova2) $c = $a; else $c = $b; echo $c->data; ...![]()

Rispondi quotando