2012-08-03 66 views
-1

我有兩個腳本:第一個腳本通過套接字接收數據並用它做一些事情,第二個腳本保存一個函數,該函數被第一個腳本調用。該函數恰好使用了第一個腳本中創建的變量。

當調用從第一個腳本的功能,我應該跑這樣的:

include 'secondscript.php'; 

//socket stuff, create $variable from input received 

functionName() 

或者這樣:

include 'secondscript.php'; 

//socket stuff, create $variable from input received 

functionName($variable) 

據我所知,一個是「全球性」的聲明,但我無法理解這一點的重要性。當然,我想知道如果這是什麼導致某些東西不起作用。

非常感謝。

+0

首先是無參數,第二個參數需要'$ variable'參數。 – Gavin 2012-08-03 12:46:00

+2

你的問題表明缺乏對PHP的基本理解。我不確定你在問什麼。如果你不使用對象,那麼所有的函數在範圍內都是「全局的」,只要它們包含在調用它們的文件中即可。 – Matt 2012-08-03 12:46:38

回答

2

你真的需要閱讀有關functions的基礎知識。

functionName(); 

表示您正在請求一個函數並且不傳遞任何信息。

functionName($someVar); 

表示您要發送變量中的信息$someVar

+7

一般而言,編程的基礎是一個更好的建議。 – Leigh 2012-08-03 12:46:30

+2

@Leigh是的,但它是一個開始。 +1 – Fluffeh 2012-08-03 12:47:25

0

對上述內容進行展開:

區別僅僅是傳遞的參數。你可以通過函數中的global聲明訪問變量,但是我個人認爲這是一個壞主意。

您將始終想知道傳入和傳出函數的參數和類型。至少,如果你不想通過什麼來定義函數定義的參數,但它們仍然作爲參數傳遞給函數調用,您可以抓取通過ARGS像func_get_args()

// definition 
function funca(Array $arr){ 
    // This tells funca to only allow Arrays as the arg type 
} 

// definition 
function funb(){ 
    $args = func_get_args(); 
    // You dont define args, but can still pull them. 
} 
//call 
funcb('a', 'b'); 
相關問題