需要确切知道这段代码中发生了啥

Posted

技术标签:

【中文标题】需要确切知道这段代码中发生了啥【英文标题】:Need to know whats happening in this code exactly需要确切知道这段代码中发生了什么 【发布时间】:2013-03-15 10:50:20 【问题描述】:

我对这段代码有点困惑

$name = $formData["name"] = stripslashes($mechanic_buy_name);

我发现这些代码用于从互联网下载的脚本之一。 我需要知道这到底是怎么回事?

$name 和 $formData'["name"] 也将具有相同的值,并且带有stripslashes。

例如,如果 $mechanic_buy_name 的值 = "SomeValue'WithQuote's";

在这种情况下,$name 和 $formData'["name"] 将被分配什么?

很想知道。

【问题讨论】:

【参考方案1】:
$name = $formData["name"] = stripslashes($mechanic_buy_name);

相同
$formData['name'] = stripslashes($mechanic_buy_name);
$name = $formData['name'];

解释:

$name 等于$formData['name'] 的值,其中$formData['name'] 的值等于$mechanic_buy_name 的值

所以在你的例子中如果:

$mechanic_buy_name = "SomeValue'WithQuote's";
$name = $formData["name"] = stripslashes($mechanic_buy_name);

echo $name . "\n" . $formData["name"];

将打印以下内容:

SomeValue'WithQuote's
SomeValue'WithQuote's

【讨论】:

【参考方案2】:

您正在将两个变量设置为相同的值:

$name = $formData["name"] = stripslashes($mechanic_buy_name);

与以下内容相同:

$name = stripslashes($mechanic_buy_name);
$formData["name"] = stripslashes($mechanic_buy_name);

不同之处在于它自己向后工作:

stripslashes($mechanic_buy_name) 设置为$formData["name"]$formData["name"] 设置为$name

它们是两个自变量。如果你改变一个,它不会影响另一个。

【讨论】:

如果你改变了 $mechanic_buy_name 它会影响这两个变量

以上是关于需要确切知道这段代码中发生了啥的主要内容,如果未能解决你的问题,请参考以下文章

Android OS 2.2 权限:我完全不知道为啥这段简单的代码不起作用。我究竟做错了啥?

C++ 这里到底发生了啥? [关闭]

Javascript - 在这个例子中异步并行的回调发生了啥?

谁能解释这段代码到底做了啥?

Object.create(Class.prototype) 在这段代码中做了啥?

(一元)* 运算符在这段 Ruby 代码中做了啥?