2011-03-17 27 views

Respuesta

18

Supongo que está utilizando require "B.inc" en varias partes? ¿Puedes intentar usar require_once en todas esas instancias?

Parece que su B.inc se analiza dos veces.

3

¿Ya declaró A() en otro lugar?

¿O está llamando a B.inc dos veces por accidente?

intente utilizar: require_once ("B.inc");

0

Parece que puede estar incluyendo B.inc más de una vez.

// Rather than 
include("B.inc"); 

// Do: 
require_once("B.inc"); 

require_once() le permite llamar a un archivo siempre que sea necesario, pero en realidad sólo lo analiza si no se ha analizado.

0

asegúrese de que require_once ('B.inc') o `include_once ('B.inc')'

0

Estas personas están bien, sino más bien utilizar PHP5, carga automática, y en lugar de las funciones de los métodos estáticos. Los métodos relacionados con los objetos son en su mayoría mejores, pero el uso de métodos estáticos le permite reutilizar el nombre de un método en muchas clases. puede llamar a un método estático como sigue

ClassName::myFunction(); 
4

que tenía un problema similar donde una función totalmente contenida dentro de una función pública dentro de una clase que se estaba reportado como redeclarada. He reducido el problema a

class B { 
    function __construct() { 
    function A() { 
    } 
    } 
} 
$b1 = new B(); 
$b2 = new B(); 

El error fatal: no se puede redeclare A se produce() al intentar crear $ b2.

El autor original del código había protegido la declaración de clase de no ser declarada con if (! Class_exists ('B')) pero esto no protege la función interna A() de ser redeclarada si intentamos crear más de una instancia de la clase.

Nota: Esto probablemente no es el mismo problema que el anterior pero que es muy similar a algunas de las respuestas en PHP Fatal error: Cannot redeclare class

+0

Esto es similar a un problema que tenía, pero mi problema estaba teniendo una función llamada definido dentro de un ' foreach' loop La solución terminó usando una función anónima. –

+0

La respuesta básica para mí fue: No definir una función dentro de otra función. –

Cuestiones relacionadas