[PHP]Onverklaarbare Redeclare

Pagina: 1
Acties:

Onderwerpen


  • Depress
  • Registratie: Mei 2005
  • Laatst online: 22-10 20:20
Ik heb een raar probleem. Ik krijg de volgende error:

Fatal error: Cannot redeclare staticinsert() (previously declared in */httpdocs/NewSite/Core/Static/Static.php:5) in */httpdocs/NewSite/Core/Static/Static.php on line 3

Maar zover ik weer is nergens een redeclare van deze functie.

DIt is het script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

    function StaticInsert(){
        
        $tpl = &TemplateParser::getInstance();
        
        $dir = opendir('Core/Static/');
        
        while( ( $file = readdir( $dir ) ) !== false ){
        
            //filename explode voor controle
            $Filename = explode( '.' , $file );
            //controle filename en error uitpoepen bij fout
            if($Filename[1] != 'inc' || $Filename[2] != 'php' || !is_file( 'Core/Modules/'.$file ) ){
                
                if(! is_dir( $file ) ){
                
                    include('Core/Static/'.$file);
                    if(isset($TPL_var,$TPL_content)){
                        $tpl->Assign($TPL_var,$TPL_content);
                        unset($TPL_var,$TPL_var);
                    }
                
                }
                
            }
            
        }
    
    }
    
    StaticInsert(); 

?>


Vink ik regel 5 uit, dan verplaats de redeclare naar regel 7.

Wat gaat er fout, hoe kan ik dit oplossen.

Verwijderd

Waarschijnelijk is de functie al gedeclareerd en wordt deze of de andere file ge-include.

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Verwijderd schreef op maandag 18 september 2006 @ 10:42:
Waarschijnelijk is de functie al gedeclareerd en wordt deze of de andere file ge-include.
Ja, nota bene in de functie zelf op regel 18 :+

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 03-11 10:27

Janoz

Moderator Devschuur®

!litemod

Ik vermoed dat je Static.php twee keer include. De fout zit iig niet in de door jou geposte code.

@hieronder: Inderdaad, je hebt gelijk. Ik heb de code net ietsje te vluchtig doorgelezen.

[ Voor 32% gewijzigd door Janoz op 18-09-2006 11:26 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Janoz schreef op maandag 18 september 2006 @ 10:43:
Ik vermoed dat je Static.php twee keer include. De fout zit iig niet in de door jou geposte code.
Volgens mij juist wel. Op regel 7 lijkt iif dezelfde dir te worden geopend als waar dit script in staat. Op regel 18 wordt vervolgens geprobeerd PHP files te skippen, maar daar zit een fout in ($Filename[2] != 'php') == true in geval van "Static.php")

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 22-10 20:20
Het werkt nu.
Heb de IF vervangen voor deze:
PHP:
1
if($Filename[1] == 'inc' && $Filename[2] == 'php'){

En een andere validatie na de if.

Bedankt voor de reacties

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 14:32
Tip voor de volgende keer. Print je variabelen naar het scherm. Dan had je zelf al heel snel gezien dat het script zichzelf recursief include.
Pagina: 1