2012-10-18 82 views
0

中使用的函數內部定義了變量我想將參數傳遞給函數。但是,在這個參數中,我使用了在函數內定義的變量。 例如:PHP:將參數傳遞給函數,但在參數

<?php 

function foo($var){ 
    $test = "test"; 
    echo $var; 
} 

foo($test); 

?> 

在這個例子中,我想對函數打印出「測試」。當然,這會返回一個錯誤。不過,這正是我想要做的。

+0

這似乎沒有對我有很大的意義...你爲什麼要這樣做? (這是不可能的順便說一句,除非你使'$ test'成爲全局變量,否則在函數內定義它的目的是失敗的)。函數中定義的變量應保持本地,外部不可訪問,以保持代碼解耦。 –

+0

該函數包含一個foreach,foreach($ array爲$ post),並且在參數中使用變量$ post。 –

+0

爲什麼你傳遞'$ post'作爲參數?或者你的意思是參數名稱是'$ post'?在循環過程中'$ post'將會被'$ array'中的每個元素填充。我仍然不明白,我更加困惑。 –

回答

2

您可以使用variable-variables做到這一點,雖然我不明白你爲什麼會想/需要:在echo聲明

function foo($var){ 
    $test = "test"; 
    echo $$var; 
} 

foo('test'); 

公告內foo(),該變量有兩個$領先。這是一個variable-variable$var將被視爲一個變量名稱。因此,通過調用foo('test');(在這種情況下參數是一個字符串),$$var將評估爲$test

+0

OP在我心中想要的最可能的翻譯:) –

+0

謝謝,這就是我所需要的。 –

+0

@Sang:請注意,使用變量變量通常是一個糟糕的設計選擇。如果你想解釋你實際想要解決的問題,我們可以幫助你更好。 –