[PHP] Redeclaren dezelfde class

Pagina: 1
Acties:

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
Ik heb een probleem. In een while lus probeer ik steeds dezelfde class te gebruiken (maar steeds met een andere waarde)..

Op de een of andere manier lukt het me niet om de class te unsetten voordat ik die class nog een keer gebruik. Php.net manual heb ik al gechecked.

Fatal error: Cannot redeclare class remotefile in C:\apache\htdocs\searcher\class.filecheck.php3 on line 12

Dat is de exacte foutmelding.
Hoe kan ik een class unsetten (zodat die de 2e keer in de while weer bruikbaar is) of werkt dit helemaal niet zo?

aka Crypto T


Verwijderd

Er is een groot verschil tussen een class en een object. Een class is een type, van een class kun je instanties maken: objecten.

Een class herdefiniëren moet je niet willen, een nieuwe instantie van een class in een variabele stoppen moet natuurlijk zonder problemen kunnen. Wat staat er op regel 12?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

troxx schreef op 05 oktober 2002 @ 16:13:
Ik heb een probleem. In een while lus probeer ik steeds dezelfde class te gebruiken (maar steeds met een andere waarde)..
PHP:
1
2
3
4
5
6
7
8
class bla
{
}

while(true)
{
   $bla = new bla();
}

Zoiets :?
Volgens mij maak je een enorme denkfout namelijk.
Op de een of andere manier lukt het me niet om de class te unsetten voordat ik die class nog een keer gebruik. Php.net manual heb ik al gechecked.
Fatal error: Cannot redeclare class remotefile in C:\apache\htdocs\searcher\class.filecheck.php3 on line 12

Dat is de exacte foutmelding.
Hoe kan ik een class unsetten (zodat die de 2e keer in de while weer bruikbaar is) of werkt dit helemaal niet zo?

Dat kan, mag, hoort en wil je niet :)

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
ik begrijp er nu helemaal niets meer van..
hoop dat deze code duidelijker is:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$query   = "SELECT *
                    FROM $tabel
                    order by checked ASC
                    limit $start, $perpagina";

        $mysql_result = mysql_query($query);

        while($row = mysql_fetch_assoc($mysql_result)){
        $url=$row[url];

        require('class.filecheck.php');
        $mp3 = new remotefile($url);
        // hier nog een zooi bewerkingen
        } //end while


Regel 12 is de regel in de class waarin de class geopend wordt.

aka Crypto T


Verwijderd

Die class moet je 1 keer requiren, niet elke keer binnen die lus.

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
kep het al opgelost... de class moet buiten de while gerequired worden :D

aka Crypto T


  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 01-01 15:26

PrinsEdje80

Holographic, not grated...

En ander werkt dan eventueel require_once() ?!? :?

Used to be Down Under... Foto gallery


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

PrinsEdje80 schreef op 05 oktober 2002 @ 16:43:
En ander werkt dan eventueel require_once() ?!? :?

Ja, maar dat is een onzinnige oplossing :)

Zeker omdat je _weet_ dat het fout is in de while loop, je classes zouden daar sowieso niet geinclude mogen worden...

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Dit soort includes kun je veelal het beste boven in je file doen.. door daar allen includes / requires te bundelen voorkom je veelal eerder dubbele includes en wordt het geheel weer overzichtelijker :)

|_____vakje______|


  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 01-01 15:26

PrinsEdje80

Holographic, not grated...

:X
Ja, maar dat is een onzinnige oplossing :)

Zeker omdat je _weet_ dat het fout is in de while loop, je classes zouden daar sowieso niet geinclude mogen worden...
Ben ik mee eens hoor... Doe het zelf ook zo NIET... O-)

Used to be Down Under... Foto gallery

Pagina: 1