Lassen Sie uns zunächst die Codezeilen in PHP sehen haben Sie geschrieben:
I.
$stack = array("");
Dies schafft eine array
genannt $stack
mit einem einzelnen Element von ""
. $stack[0]
hat den Wert ""
. Sie können die Elemente eines zugehörigen array
, wie dieser Name:
$stack = array("name" => "value");
In diesem Fall $stack["name"]
wird "value"
sein.
II.Diese
array_push($stack, $_POST[name]);
ist falsch, da name
keine Variable ist, noch ein String. Sie haben wahrscheinlich gedacht:
array_push($stack, $_POST["name"]);
würde dies $_POST["name"]
am Ende Ihres Arrays mit ""
geschrieben hat, so hätte $stack[1]
gewesen, was auch immer der Wert von $_POST["name"];
war.
III.
for(i < $stack.length){
Dies ist eine falsche Syntax. Sie haben
for($i = 0; $i < count($stack); $i++){
Hinweis gemeint, wie $
vor allen Variablen gesetzt wird und wie ähnlich dieser Zyklus zu einem Java ist für.
IV.
print_r($stack[i]);
falsch, müssen Sie die das Geld ($
), sonst wird Ihre Variablen nicht kooperieren.
print_r($stack[$i]);
Sie überprüfen jedoch nicht, ob dies eine POST-Anfrage oder ein GET ist. Wenn der Benutzer die Seite lädt, wird es eine GET-Anfrage sein und wenn er die form
übermittelt, wird es eine POST-Anfrage sein. Die erste (GET) Anfrage hat keine $_POST
Mitglieder ($_POST
wird leer sein), da die form
noch nicht eingereicht wurde. Und wenn Sie überprüfen, ob es sich um eine POST-Anforderung ist, müssen Sie überprüfen, ob "name"
in $_POST
vorhanden ist:
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') { //it is a post
if (isset($_POST["name"])) { //name is found inside $_POST
echo "Name is " . $_POST["name"];
}
}
?>
Question1:
$_SESSION
ist ein array
, wie $stack
. Sie können etwas tun:
$_SESSION["name"] = $_POST["name"];
Dies wird ein neues Element der $_SESSION
mit dem Index von "name"
jedoch erstellen, bevor eine solche Zuordnung, you need to make sure the session was started.
Question2:
Sie es durch den Namen des Index verweisen, wie in Java, aber in PHP können Sie Textindizes haben und wenn Sie wollen, während in Java Sie nur ganze Zahlen verwenden können.
Sie sind nicht in Javascript-Welt hier! 'for (i <$ stack.length)' wird 'foreach ($ stack als $ v) {print $ v; } ' – JustOnUnderMillions
Sie haben in Java-Art getan ... aber Sie müssen ändern, warum? – Smit
http://php.net/manual/en/control-structures.foreach.php –