2012-11-13 201 views
1

當我做這樣的事情:代碼PHP函數作爲變量

$query = mysql_query("INSERT INTO something (something) VALUES('".$something."')"); 
if($query){ 
//do stuff 
} 

$mailstuff = mail($to,$subject,$message,$headers); 
if($mailstuff){ 
//do stuff 
} 

哪一部分實際上執行的功能? if還是聲明?引用讚賞。

感謝

回答

1
$mailstuff = mail($to,$subject,$message,$headers); 

if($mailstuff) { 
    //do stuff 
} 

這裏是會怎樣做(以正確的順序):

  • mail($to,$subject,$message,$headers)
  • mail函數已經返回了一些東西。這東西被分配到$mailstuff
  • if語句將檢查是否在$mailstuff的東西是有點等於true

請不是違背您在您的評論有什麼建議時,服務器將實際執行它之前解析所有的代碼。

+0

我想我應該查找單詞「解析」的定義。謝謝 –

+1

解析將構建計算機可以理解的源代碼樹。引擎將執行它。在他們兩個之間,編譯器可以將樹轉換爲字節碼來加速執行。這在原始問題中不是很重要,只是很高興知道:) –

4

說明在代碼...

$mailstuff = mail($to,$subject,$message,$headers); 
      ^-----------------------------------^ 
      /* This part executes the function */ 


if($mailstuff) { 
    ^----------^ 
/* Condition Here Checks whether the function is successfully executed */ 
//do stuff 
} 

PHP function() Reference

+1

@WesleyMurch其實,他需要一些參考資料,我想他可能會看看功能是如何工作的 –

+0

因此,我會假設服務器在第一次出現時解析它?這正是我所期待的,謝謝。 –

+0

@Adelphia它實際上執行函數內的代碼,當你聲明它... –