首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组和循环PHP

问数组和循环PHP
EN

Stack Overflow用户
提问于 2017-03-06 14:58:27
回答 2查看 71关注 0票数 1

我对php非常陌生。我认为自己在Java没什么问题,但我想更多地了解网络内容。我非常喜欢HTML和CSS,但是我在php上遇到了很多麻烦。

我正在编写一个非常基本的php代码。我希望它从用户那里获得信息(通过表单),并将其添加到php (POST)中的数组中。然后,我想将数组存储为会话变量,并编写一个for循环,该循环输出HTML列表中的每个索引。

问题:

  1. 我对会话没有很好的处理,所以不确定如何将数组存储为会话变量。2.我不知道如何在php中引用数组的特定索引。我在这里用java的方式做过,但这需要改变。

--代码--

代码语言:javascript
复制
<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>

</body>
</html>


<?php
$stack = array("");
array_push($stack, $_POST[name]);

for(i < $stack.length){
print_r($stack[i]);
}
?>
EN

回答 2

Stack Overflow用户

发布于 2017-03-06 15:12:45

访问会话变量很容易:

  1. 首先,您需要调用方法session_start() (确保在发送任何header之前调用它)。
  2. 调用session_start()方法之后,您将可以访问$_SESSION关联数组。您将能够将任何内容附加到这个数组中。

PHP中for循环的语法如下:

代码语言:javascript
复制
foreach (array_expression as $value)
    statement

或

代码语言:javascript
复制
foreach (array_expression as $key => $value)
    statement

我希望这能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2017-03-06 18:57:42

首先,让我们看看您编写的PHP代码行:

我。

代码语言:javascript
复制
$stack = array("");

这将创建一个名为array的$stack,其中只有一个""元素。$stack[0]的值为""。您可以命名相关array的元素,如下所示:

代码语言:javascript
复制
$stack = array("name" => "value");

在这种情况下,$stack["name"]将是"value"。

二、

代码语言:javascript
复制
array_push($stack, $_POST[name]);

这是不正确的,因为name不是变量,也不是字符串。你可能是说:

代码语言:javascript
复制
array_push($stack, $_POST["name"]);

这将在数组末尾编写具有$_POST["name"]的"",因此无论$_POST["name"];的值是什么,$stack[1]都应该是。

三、

代码语言:javascript
复制
for(i < $stack.length){

这是不正确的语法。你的意思是

代码语言:javascript
复制
for($i = 0; $i < count($stack); $i++){

请注意如何将$放在所有变量的前面,以及这个循环与Java的相似之处。

四.

代码语言:javascript
复制
print_r($stack[i]);

不正确,您需要现金($),否则您的变量将不合作。

代码语言:javascript
复制
print_r($stack[$i]);

但是,您不检查这是POST请求还是GET。当用户加载页面时,它将是一个GET请求,当他提交form时,它将是一个POST请求。第一个(GET)请求将没有$_POST成员($_POST将为空),因为form尚未提交。如果您检查它是否为POST请求,则需要检查"name"是否存在于$_POST中。

代码语言:javascript
复制
<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是array,和$stack一样。你可以这样做:

代码语言:javascript
复制
$_SESSION["name"] = $_POST["name"];

这将创建$_SESSION的一个新元素,索引为"name",但是,在这样一个赋值之前,you need to make sure the session was started。

Question2:

您可以使用索引的名称来引用它,就像在Java中一样,但是,在PHP中,如果需要,您也可以使用文本索引,而在Java中,您只能使用整数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42628781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档