首先,让我们看到的代码PHP行你写:
一
$stack = array("");
这将创建一个名为array
与$stack
的""
一个元素。 $stack[0]
将具有值""
。您可以命名一个相关array
的元素,像这样:
$stack = array("name" => "value");
在这种情况下$stack["name"]
将"value"
。
二,
array_push($stack, $_POST[name]);
这是不正确的,因为name
不是一个变量,也不是一个字符串。你大概的意思是:
array_push($stack, $_POST["name"]);
这将在有""
你数组的结尾都写$_POST["name"]
,所以$stack[1]
本来一切的$_POST["name"];
的值。
三,
for(i < $stack.length){
这是不正确的语法。你意味着
for($i = 0; $i < count($stack); $i++){
注$
是如何把所有变量的前面,多么相似的这个周期是一个Java的。四,参考文献
print_r($stack[i]);
不正确的,你需要的现金($
),否则你的变量不会合作。
print_r($stack[$i]);
但是,您不检查这是POST请求还是GET。当用户加载页面时,它将是一个GET请求,当他提交form
时,它将是一个POST请求。第一个(GET)请求将不会有$_POST
成员($_POST
将为空),因为form
尚未提交。如果你检查它是否是一个POST请求,则需要检查"name"
是否存在于$_POST
:
<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"];
}
}
?>
问题1:
$_SESSION
是array
,像$stack
。你可以做这样的事情:
$_SESSION["name"] = $_POST["name"];
这将创建$_SESSION
一个新的元素与"name"
的指标,但是,这样的分配之前,you need to make sure the session was started。
问题2:
您可以通过索引的名字引用它,就像在Java中,然而,在PHP中可以有文本索引,以及如果你想要的,而在Java中,你只能使用整数。
您还不是在JavaScript世界! 'for(i <$ stack.length)'变成'foreach($ stack as $ v){print $ v; }' – JustOnUnderMillions
你用java的方式完成了......但你需要改变原因吗? – Smit
http://php.net/manual/en/control-structures.foreach.php –