2013-06-11 33 views
2

我有一個函數在這裏:哪個會先執行(PHP)?

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())返回。

現在,您可以在密碼字段中看到,有2個功能。

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

我的問題是,將c()功能運行第一或md5功能將首先運行?我幾乎可以肯定c()函數首先運行,但我不確定。

+6

你是對的:-) –

+2

總是從上到下,從內到外。 –

+3

當然c()會先運行。否則,md5如何得到一個參數? –

回答

6

c先運行。

因爲你可以將其改寫爲:

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

你不能改寫它,這樣md5首先被調用。

4

c函數將首先運行。

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

相當於

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

所以c將首先運行。

1

c()將先執行,然後執行md5()

2

c()函數首先運行。如果功能在另一個功能中,則外部功能(在此例中爲md5())將首先推送到stack。然後執行內部函數(c())。然後,c()的結果被用作從stack彈出並執行的外部函數(md5())的輸入。

相關問題