Waar komt dit vandaan?

  • Onderwerp starter Onderwerp starter Mitij
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Mitij

Gebruiker
Lid geworden
15 aug 2009
Berichten
9
Hallo

Ik zit met geesten!
Mijn verstand kan er in ieder geval niet bij!
Even de situatie schetsen: ik zat wat te klooien met array's binnen php, beetje kennismaken ermee, beetje rotzooien, je kent het wel!
en plots kom ik dit tegen:
e5qx5h.jpg


links is de broncode in firefox, rechts ziet u de code zoals ik ze heb getypt in EditPad Pro
vanwaar komt toch het gedeelte in dat zwarte kadertjes? ik kan er echt niet aan uit!

Bedankt!

Gr,
Mitij
 
btw links kan geen broncode zijn omdat je geen php kan zien in broncode
 
Waar staat er aan de linkerkant dan PHP volgens jou?

PHP:
<form action="test.php" method="post">
<select name="taal">
<option value="Duits">Duits</option>
<option value="Nederlands">Nederlands</option>
<option value="Engels">Engels</option>
</select>
<input type="submit">
</form>
<?
$taal = $_POST['taal'];
$arr = array("Duits" => "German", "Nederlands" => "Dutch", "Engels" => "English");
echo $taal."(taal)<br />";
echo $arr[$taal]."(arr taal)<br />";
print_r($taal);
echo "(print taal)<br />";
print_r($arr);
echo "(print arr)<br />";

$array = array(1, 2, 3, 4, 5);
print_r($array);
echo "<br />".$array."<br />";

foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);
echo "     leeg he";

$array[] = 6;
$array[] = 99;
echo "       vol he";

echo "         en nu?
";
echo "voor: ".$array." of ".print_r($array)."<br />
";
$array = array_values($array);
echo "na: ".$array." of ".print_r($array)."<br />
";
$array["9"] = 7;
$array["5"] = 8;
$array[] = 9;
echo "<br />voila<br />";
print_r($array);

?>

Zoals je ziet is het allemaal maar een beetje om te testen, om een beetje uit te zoeken hoe het werkt, dus niet echt een pagina die openbaar moet worden ofzo ;)
da pagina vind je trouwens terug op http://www.dekruimel-vorst/layout/test.php
 
Op regel 19 maak je een array aan met daarin 5 waarden. In de loop op regels 23/25 haal je de individuele waarden uit de array terwijl de array zelf blijft bestaan (dwz de variabele $array), ook al is hij leeg.

Op regels 29 en 30 voeg je weer twee waarden aan de array toe - de oude keys bestaan nog, dus hij gaat door bij 5.
 
Zou het kunnen dat je in de war bent door de volgorde van printen?

Want de print_r functie geeft geen return,maar print direct naar het scherm. Dat betekend dat je dit niet hoeft te doen:
PHP:
echo print_r ( array( 1 )  );

Maar dat dit genoeg is:
PHP:
print_r ( array( 1 )  );

Nou zul je daar over het algemeen geen last van hebben, behalve als je het zo doet:

PHP:
echo "tekst " . print_r ( array( 1 )  );

Want dan wordt de output
Code:
Array ( [0] => 1 ) tekst 1

En dat is misschien niet wat je verwacht... Dat komt omdat print_r direct wordt uitgevoerd, terwijl hij de echo nog aan het scannen is. Daarom komt de print_r eerst, daarna de rest van de echo, en daarna nog een 1 (dit is de return van de print_r functie, die simpelweg aangeeft dat het printen gelukt is)
 
Op regel 19 maak je een array aan met daarin 5 waarden. In de loop op regels 23/25 haal je de individuele waarden uit de array terwijl de array zelf blijft bestaan (dwz de variabele $array), ook al is hij leeg.

Op regels 29 en 30 voeg je weer twee waarden aan de array toe - de oude keys bestaan nog, dus hij gaat door bij 5.

Dank je wel, maar dat wist ik dus allemaal ook wel ;)

Dat komt omdat print_r direct wordt uitgevoerd, terwijl hij de echo nog aan het scannen is. Daarom komt de print_r eerst, daarna de rest van de echo, en daarna nog een 1 (dit is de return van de print_r functie, die simpelweg aangeeft dat het printen gelukt is)
Aha, dat is al een duidelijker antwoord op mijn vraag zie! ;)


Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan