lo tanto, si se intenta hacer una clase anidada como esto:PHP Las clases anidadas funcionan ... ¿algo así?
//nestedtest.php
class nestedTest{
function test(){
class E extends Exception{}
throw new E;
}
}
obtendrá un error Fatal error: Class declarations may not be nested in [...]
pero si usted tiene una clase en un archivo separado de este modo:
//nestedtest2.php
class nestedTest2{
function test(){
include('e.php');
throw new E;
}
}
//e.php
class E Extends Exception{}
Entonces, ¿por qué la segunda forma hacky de hacerlo funcionar, pero la forma no hacky de hacerlo no funciona?
+1 no sabía que – soulmerge
Por lo tanto, tienen un alcance global, y puedo llamar a todos los funciones privadas y protegidas que la clase tiene ... – SeanJA
@SeanJA: como tienen alcance global, _no_ podrán llamar a los métodos no públicos de la clase que contenía el include() –