abstract class A { } class B extends A{ __construct(){ $c = c::getInstance($this); // OK } } class C { { { $c = __CLASS__; self::$instance = new $c; } return self::$instance; } } class D { __construct() { $b = new B; $c = c::getInstance($b); // nie chcę żeby to działało ale zadziała } }
Gdyby nie obejście użyte w klasie D to wszystko by było ok ale takie coś pozwala obejść zabezpieczenie. Czy da się w jakiś sposób sprawdzić skąd została wywołana dana metoda?