Error array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Remy Brokke

Remy Brokke

08/04/2007 17:59:00
Quote Anchor link
Hoi ik heb een error array gemaakt maar ik krijg steeds dezelfde error:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: Invalid argument supplied for foreach() in /home/remy/domains/404inc.nl/public_html/blogr.php on line 38


Een nieuwe error in mijn array maak ik zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$errors
[] = "Er is geen bericht gevonden!";
?>


En uiteindelijk lees ik ze zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(is_array($errors))
  {

    if(array_pop($errors) !== NULL)
      {

        foreach($erorrs as $key => $waarde)
          {

            echo $waarde;
            echo "<br />";
          }
      }
  }

?>
 
PHP hulp

PHP hulp

14/03/2025 05:40:14
 
- SanThe -

- SanThe -

08/04/2007 18:21:00
Quote Anchor link
Typo gemaakt? foreach($erorrs as $key => $waarde)
 
Remy Brokke

Remy Brokke

08/04/2007 18:25:00
Quote Anchor link
Ow mijn god. Schandelijk. Alleen heb ik nu wel een nieuw foutje. Hij print de array niet zoals je hier kunt zien.

Is mijn manier van het vullen van een array wel correct?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$errors
[] = "Er is geen bericht gevonden!";
?>
 
- SanThe -

- SanThe -

08/04/2007 18:29:00
Quote Anchor link
Boven ook even eerst definiëren?

$errors = array();
 
Remy Brokke

Remy Brokke

08/04/2007 18:34:00
Quote Anchor link
Dat is natuurlijk gebeurd!
 
PHP Newbie

PHP Newbie

08/04/2007 18:39:00
Quote Anchor link
Waarom gebruik je array_pop()? Hiermee haal je de laatste waarde uit de array...
 
Remy Brokke

Remy Brokke

08/04/2007 18:42:00
Quote Anchor link
http://nl3.php.net/array_pop zegt:

Quote:
Als array leeg of geen array is zal NULL worden teruggegeven.


Dit was dus voor mij de manier om te kijken of de array niet leeg is.
 
Remy Brokke

Remy Brokke

08/04/2007 18:53:00
Quote Anchor link
Naar een paar testjes ben ik er achtergekomen dat mijn manier van controleren of een array leeg is werkt:

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
15
16
<?php
if(is_array($errors))
  {

    if(array_pop($errors) !== NULL)
      {

        foreach($errors as $key => $waarde)
          {

            echo $waarde;
            echo "<br />";
            echo "Hoi";
          }


        echo "Klik <a href=\"#\" onclick=\"history.go(-1)\">hier</a> om terug te gaan.";
      }
  }

?>


Geeft als output:

Quote:
Klik hier om terug te gaan.


Niets meer en niets minder.
 
Jesper Diovo

Jesper Diovo

08/04/2007 19:47:00
Quote Anchor link
Hoe ziet je array er in totaal uit?

Als je een foreach zo gebruikt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
foreach($array as $key => $waarde)


moet je array er ook zo uit zien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$array = array('key' => 'waarde','key' => 'waarde');
 
Remy Brokke

Remy Brokke

08/04/2007 20:00:00
Quote Anchor link
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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$errors
= array();

$i = 1;

if($i > 1)
  {

     $errors[] = "Hier klopt iets niet!";
  }

elseif($i < 1)
  {

    $errors[] = "Nee. De variabelen i is kleiner dan 1.";
  }

else
  {
     $errors[] = "Dit is compleet goed!";
  }


if(is_array($errors))
  {

    if(array_pop($errors) !== NULL)
      {

        foreach($errors as $key => $waarde)
          {

            echo $waarde;
            echo "<br />";
            echo "Hoi";
          }


        echo "Klik <a href=\"#\" onclick=\"history.go(-1)\">hier</a> om terug te gaan.";
      }
  }


?>


Zo bouw ik hem op. :)
 
Baarr

Baarr

08/04/2007 20:12:00
Quote Anchor link
Waarom dan niet zo ?

Ennuh 'dit is compleet goed' lijkt me geen error, dus ik zou het anders doen met dat ge-pop :P

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if(is_array($errors) && sizeof($errors) > 0)
{

      foreach($errors as $key => $waarde)
      {

         echo $waarde . '<br />hoi';
      }

      echo 'Klik <a href="#" onclick="history.go(-1)">hier</a> om terug te gaan.';

  }

?>
Gewijzigd op 01/01/1970 01:00:00 door Baarr
 
Remy Brokke

Remy Brokke

08/04/2007 20:26:00
Quote Anchor link
Dankjewel! Dit werkt wel! :)
 
PHP Newbie

PHP Newbie

08/04/2007 21:30:00
Quote Anchor link
Remy schreef op 08.04.2007 20:00:
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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$errors
= array();

$i = 1;

if($i > 1)
  {

     $errors[] = "Hier klopt iets niet!";
  }

elseif($i < 1)
  {

    $errors[] = "Nee. De variabelen i is kleiner dan 1.";
  }

else
  {
     $errors[] = "Dit is compleet goed!";
  }


if(is_array($errors))
  {

    if(array_pop($errors) !== NULL)
      {

        foreach($errors as $key => $waarde)
          {

            echo $waarde;
            echo "<br />";
            echo "Hoi";
          }


        echo "Klik <a href=\"#\" onclick=\"history.go(-1)\">hier</a> om terug te gaan.";
      }
  }


?>


Zo bouw ik hem op. :)



Op deze manier zal de array dus altijd maar 1 waarde hebben, die je verwijdert met array_pop()
 
Jan Koehoorn

Jan Koehoorn

08/04/2007 21:34:00
Quote Anchor link
Als je je script begint met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $errors
= array ();
?>

dan is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    if (is_array ($errors))
?>

later in je script overbodig. Controleren of een array gevuld is kan inderdaad met sizeof, of simpel met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    if (!empty ($errors)) {
    // doe iets
    }
?>
 
Baarr

Baarr

08/04/2007 22:48:00
Quote Anchor link
Voor een array maakt die empty functie niet uit, voor de rest is het de meeste zinloze functie die er is..

Vantevoren je afvragen wat het resultaat is van onderstaande..

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
15
16
17
<?php

$tests
= array('1', 1 , 0 , '0', '', ' ');

foreach($tests as $value)
{

    if(empty($value))
    {

        echo 'empty<br >';
    }

    else
    {
        echo 'not empty<br >';
    }
}


?>
 
Jan Koehoorn

Jan Koehoorn

08/04/2007 22:56:00
Quote Anchor link
Baarr schreef op 08.04.2007 22:48:
Voor een array maakt die empty functie niet uit

Voor een array maakt die functie wel degelijk iets uit. Kijk maar eens naar de output van dit script:
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
15
16
17
18
<?php
    $gevuld
= array (1, 2, 3);
    $leeg = array ();
    
    if (empty ($gevuld)) {
        echo 'De array $gevuld is leeg';
    }

    else {
        echo 'De array $gevuld is gevuld';
    }


    if (empty ($leeg)) {
        echo 'De array $leeg is leeg';
    }

    else {
        echo 'De array $leeg is gevuld';
    }

?>
 
Baarr

Baarr

08/04/2007 23:03:00
Quote Anchor link
Nee dat bedoelde ik ook niet, ik zal het anders verwoorden;

Voor een array is die functie wel geschikt, maar voor de rest is het de meeste zinloze functie die er is..

Wat ik wilde zeggen, om een array te checken is ie nog wel nuttig, maar verder ...

Snap je ???
Gewijzigd op 01/01/1970 01:00:00 door Baarr
 
Jan Koehoorn

Jan Koehoorn

08/04/2007 23:30:00
Quote Anchor link
Ja, je formulering was een beetje ongelukkig, maar ik snap nu wat je bedoelt. In de praktijk werk ik trouwens erg veel met arrays, en dan komt die empty vaak goed van pas ;-)
 



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.