een array returnen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jurgen

jurgen

08/11/2007 12:57:00
Quote Anchor link
Hallo,
Ik probeer met onderstaande code een array te returnen, wat blijkbaar niet lukt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
function get_maps($url){
    if ($dir = opendir($url)){
        while (($map = readdir($dir)) !== false){
            if($map != ".." && $map != "."){
                $maplist[] = $map;
            }
        }
        closedir($dir);
    return $maplist;
    }
}

Wat doe ik hier fout?
 
PHP hulp

PHP hulp

27/11/2024 21:20:45
 
Martijn B

Martijn B

08/11/2007 13:00:00
Quote Anchor link
Als de map niet kon wordt geopend dat krijg je idd geen array terug.

Probeer eens zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function get_maps($url){
$aResult = array();    
if ($dir = opendir($url)){
        while (($map = readdir($dir)) !== false){
            if($map != ".." && $map != "."){
                $aResult[] = $map;
            }
        }

        closedir($dir);
    }

return $aResult;
}

?>


Altijd eerst even netjes je variabele aanmaken je begint in de loop wel met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$maplist
[] = $map;
?>

Maar dan moet $maplist al wel een array zijn.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Jurgen

jurgen

08/11/2007 13:08:00
Quote Anchor link
Thx Martijn, en toch vind ik het vreemd dat ik geen array terugkrijg als ik de regel $maplist[] = $map; weglaat.
als ik de regel $maplist[] = $map; toevoeg dan krijg ik wel resultaat :)
 
Joren de Wit

Joren de Wit

08/11/2007 13:11:00
Quote Anchor link
Dat lijkt me vrij logisch. Die regel zorg er juist voor dat er bij elke loop een nieuwe map aan de array $maplist toegevoegd wordt...
 
Jurgen

jurgen

08/11/2007 13:12:00
Quote Anchor link
Blanche, het gaat hier wel over het aanmaken van een array, niet het toevoegen :)
 
Joren de Wit

Joren de Wit

08/11/2007 13:15:00
Quote Anchor link
$maplist[] = $map; heeft niets te maken met het aanmaken van een array. Dit is puur het toevoegen van een nieuwe waarde aan de array. Dat in php de array aangemaakt wordt als hij niet bestaat is een ander verhaal. In andere programmeertalen zal je hier een foutmelding op krijgen omdat de array niet bestaat.

Aanmaken doe je bijvoorbeeld met $maplist = array();.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Martijn B

Martijn B

08/11/2007 13:15:00
Quote Anchor link
Je hebt het nu over jou code he?

Als je $maplist[] ... weg laat is er helemaal niets om als resultaat terug te geven.

Kijk eens naar het verschil tussen jou en mijn code als je dit bovenin zet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
@
ini_set('display_errors', 1);
?>


Deze code geeft aan de PHP alle errors op het scherm moet zetten.
Als je website (of wat ook) online is dan maak je van de 1 een 0.
Dan komen er geen errors inbeeld wel zo netjes / veilig.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Jurgen

jurgen

08/11/2007 13:17:00
Quote Anchor link
Oeps sorry Blanche, ff verkeerd gekopieerd.
Het gaat idd over deze regel:
$maplist = array();
Als ik deze weglaat geeft m geen array terug, wat ik nog altijd vreemd vind. :)
 
Martijn B

Martijn B

08/11/2007 13:27:00
Quote Anchor link
Dan krijg je dus iets wat lijkt op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function test()
{

  return $variabeledienietbestaat;
}

?>


En jij vind het vreemd dat er geen array wordt terug gegeven :P

edit:

Laat maar...
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.