--- A.php ----
require_once 'B.php';
class A
{
public function __constructor($x){...}
public function foo()
{
$b = B::getInstance();
...
}
}
--- B.php ----
require_once 'A.php';
class B extends A
{
protected static $_instance = null;
protected function __construct(){}
public static function getInstance()
{....}
}
PHP sólo se detiene interpretar el código tan pronto como se alcanza la línea deno se puede definir el constructor como protegido o privado. ¿por qué?
protected function __construct(){}
y da salida a todo antes y nada de lo que habría sido enviada al navegador después.
Y tan pronto como me tomo esa línea, cambiándola a
// protected function __construct(){}
todo funciona bien !?
No entiendo eso.
¿Alguna idea?
¿tiene etiquetas de apertura de PHP en los archivos, por ejemplo, comienzan con ' php'. ¿Puedes ejecutar 'php -l A.php' y' php -l B.php' desde la CLI para ver si da algún error de análisis? – Gordon
El método __construct() deberá ser público ya que se accede (públicamente) cuando se crea una instancia de la clase. –
Su pseudocódigo no tiene ningún problema obvio, por lo que es muy probable que el problema esté en su código real. Si PHP deja de ejecutarse y no muestra ningún mensaje de error, es probable que deba habilitar el informe completo de errores. No dude en solicitar detalles si no sabe cómo hacerlo. –