2

我在这里有一个功能:

function loginForm($post){
    $username = c($post['username']);
    $password = md5(c($post['password']));
    if($this->login($username,$password))
        $this->setCookies($post);
}

如您所见,用户名和密码是从一个名为 c()(就是$mysqli->real_escape_string())的函数返回的。

现在,正如您在密码字段中看到的那样,有两个功能。

$password = md5(c($post['password']));

我的问题是,函数会先c()运行,还是md5函数会先运行?我几乎可以肯定该c()功能首先运行,但我不确定。

4

5 回答 5

6

c首先运行。

因为您可以将其重写为:

$temp = c($post['password']);
$password = md5($temp);

您不能重写它,以便md5首先调用它。

于 2013-06-11T16:48:06.137 回答
4

c 函数将首先运行。

于 2013-06-11T16:48:07.607 回答
3
$password = md5(c($post['password']));

相当于

$password_c = c($post['password']);
$password = md5($password_c);

所以c会先运行。

于 2013-06-11T16:48:39.530 回答
2

c()函数首先运行。如果一个函数位于另一个函数内部,则外部函数(在这种情况下md5())将首先被压入堆栈。然后内部函数 ( c()) 将执行。然后,c()的结果用作外部函数 ( md5()) 的输入,该函数从堆栈中弹出并执行。

于 2013-06-11T16:52:36.953 回答
1

c()将首先执行,然后md5().

于 2013-06-11T16:49:15.103 回答