chyba s Laděnkou v kominaci s $s=& new XX

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pavel123
Člen | 1
+
0
-

Narazil jsem na zajímavé chování, když jsem se pokusil použít Nette\Debug se starým webem postaveným nad pearem.

U mne to běhalo v pořádku, ale na Otomanu (PHP5.2.5 a bohužel zapnuté register_globals) na mě vyskakovaly chyby podobné této:

Fatal Error
Class 'NDebug' not found
File pear/HTML/QuickForm.php   Line: 566

kde na Line 566 je: $elementObject =& new $className();

Po zbavení se toho & se to opakovalo jinde, pak jinde, prostě pear byl nepoužitelný.

Co mne překvapilo:

  • hláška že NDebug nenalezen v pěkně naformátované grafice NDebugem :)
  • nepovedlo se mi to zaboha nasimulovat, zkoušel jsem i věci jako:
class Testovaci {
    public function neco(){
        $a="StdClass";
        $p=& new $a;
    }
}
$t=new Testovaci;
$t->neco();
  • naopak chyba nastane třeba i jen při jednoduchém require_once ‚Pager/Sliding.php‘;

Takže se kód ani nemusel vykonávat.

Nějak se tam protlačilo jméno třídy Debug z Nette (stejný problém byl i při použití neprefixové verze). Ani když jsem si u sebe vypl register_globals, nedokázal jsem tohle nasimulovat.

Je to nějakou extrémně pošahanou verzí PHP?