【问题标题】:(PHP) struggling with the variable inside a for loop(PHP) 在 for 循环中处理变量
【发布时间】:2018-07-25 19:51:43
【问题描述】:

为了给出一些上下文,这是 for 循环引用的代码:将表单数据放入数组中。

         $_SESSION['shoppingcart'][$count] = array (

        'id' => filter_input(INPUT_GET, 'ID'),
        'name' => filter_input(INPUT_POST, 'hidden_name'),
        'price' => filter_input(INPUT_POST, 'hidden_price'),
        'list_price' => filter_input(INPUT_POST, 'hidden_list_price'),
        'quantity' => filter_input(INPUT_POST, 'quantity')

       );

    $count = count($_SESSION['shoppingcart']);

    $product_ids = array_column($_SESSION['shoppingcart'], 'id');

这一切都很好:我理解这段代码的作用。这只是“for”循环以及在 for 循环之外涉及变量“$i”的所有内容。

for ($i=0; $i < count($product_ids); $i++) { 

if ($product_ids[$i] == filter_input(INPUT_GET, 'ID')) {

$_SESSION['shoppingcart'][$i]['quantity'] += 
filter_input(INPUT_POST,'quantity');

            }
        }

所以,$i 变量。它在 for 循环中代表什么,为什么/它在“if”语句中的方括号中代表什么。

我应该说这段代码实现了它的预期目的(将表单数据放入数组中,如果数组中的项目已经存在,则递增 quantity。) 我从 YouTube 教程中获得了代码,只是他没有解释 $i 部分。

【问题讨论】:

  • 发帖前你有没有看说明书?
  • 我投票决定将此问题作为离题结束,因为该手册有很好的文档说明 for 循环的工作原理
  • 请不要从网上下载代码,看不懂的时候再使用。这样做只会让您的应用程序充满错误和安全漏洞,并且当您的服务器被劫持时,将使互联网对每个人都更加危险。
  • 另外,for 循环是绝大多数语言中最基本的编程概念之一,当然是所有“类 C”语言。如果你不知道for 循环是如何工作的,我给你的最好建议是在做任何其他事情之前花时间阅读一些基本教程。试图在不理解循环的情况下学习编程只会让你非常沮丧。
  • 同意@EdCottrell 关于安全性的看法。例如filter_input(INPUT_GET, 'ID') 看起来它可能会过滤某些内容,但默认过滤器是 FILTER_UNSAFE_RAW。

标签: php arrays for-loop


【解决方案1】:

每次您完成循环的迭代时,$i 变量将增加 $i++(因此在本例中增加 1),直到满足以下条件:$i &lt; count($product_ids)。这对于顺序访问数组中的元素特别有用,即if ($product_ids[$i] == filter_input(INPUT_GET, 'ID')) 用于访问$product_ids 的每个元素并检查该值是否等于filter_input(INPUT_GET, 'ID')

另外值得注意的是$i = 0是$i的初始化。这只会在您第一次进入 for 循环时发生一次。

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 2016-04-14
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多