【问题标题】:Array and loop PHP数组和循环 PHP
【发布时间】:2017-07-26 12:13:11
【问题描述】:

我真的是 php 新手。我认为自己在 Java 方面还不错,但想更深入地研究 Web 内容。我很喜欢 HTML 和 CSS,但我在使用 php 时遇到了很多麻烦。

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

问题:
1.我对SESSION没有很好的处理,所以不确定如何将数组存储为会话变量。 2.我不确定如何在php中引用数组的特定索引。我在这里以 java 的方式完成了它,但这需要改变。

--CODE--

<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]);
}
?>

【问题讨论】:

  • 你不在javascript世界里! for(i &lt; $stack.length) 变为 foreach($stack as $v){ print $v; }
  • 你已经用java方式完成了......但是你需要改变为什么?
  • @JustOnUnderMillions 谢谢!
  • @Smit 我想在 php.ini 中执行此操作。为了我的理解。

标签: php arrays loops session post


【解决方案1】:

访问会话变量很简单:

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

PHP中for循环的语法如下:

foreach (array_expression as $value)
    statement

foreach (array_expression as $key => $value)
    statement

希望对你有帮助。

【讨论】:

    【解决方案2】:

    首先让我们看看你写的 PHP 代码行:

    我。

    $stack = array("");
    

    这将创建一个名为 $stackarray,其中包含一个元素 ""$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++){
    

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

    四.

    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 中您只能使用整数。

    【讨论】:

      【解决方案3】:

      只是为了快速更新您拥有的代码,使其有点可行:

      HTML代码

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

      php代码

      <?php
      $stack = array("");
      if(isset($_POST['name'])){
          array_push($stack, $_POST['name']);
      
          for($i=0; $i < count($stack); $i++){
          echo($stack[$i]);
          }
      }
      ?>
      

      假设这一切都在welcome.php中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-02
        • 2014-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多