2013-04-12 83 views
0

這裏是我的問題,我想有一個會定義我的函數參數,像這樣的字符串:使用一個變量定義PHP函數參數

function blabla($param1, $param2){ 
    my cool code . $param1 . $param2; 
} 

$params = 'param1, param2'; 
blabla($params); 

的問題是,當我這樣做,他使用字符串「參數1,參數2」爲一體的論點,而不是兩個,好像我要2

+0

不是PHP如何工作,先生。除此之外,函數不以$開頭。你最好預期一個數組作爲你的函數參數,併爲這個警告傳遞數組('param1','param2') –

回答

1

你是如何做到這一點,你不能。但是,請注意call_user_func_array,因爲它可能會解決您正在嘗試執行的操作。示範如下:

function blabla($param1, $param2){ 
    echo "my cool code $param1 $param2"; 
} 

$params = 'does,work'; 
call_user_func_array('blabla', explode(',', $params)); 
+0

你是最棒的,事實上,這正是我想要做的事情,thx很多,什麼是call_user_func_array到底在做什麼? –

+0

@YannChabot它所做的就是將參數傳遞給你想要的功能。該數組是一個索引數組,可以保存它們,並且可以傳遞該函數允許的許多參數。 – Jon

0

使用explode() PHP函數

function blabla($param){ 
    $params = explode(',', $param); 
    $param1 = $params[0]; 
    $param2 = $params[1]; 
} 

$params = 'param1, param2'; 
blabla($params); 
4

這是一個非常落後的事情要做,但你會親通過將你的字符串分解爲一個值數組,並使用call_user_func_array將這些值作爲參數傳遞給函數來做到這一點。

function blah($x, $y) { 
    echo "x: $x, y: $x"; 
} 

$xy = "4, 5"; 

$params = explode(", ", $xy); 

# Just like calling blah("4", "5"); 
call_user_func_array('blah', $params); 

我卻又提醒你,你可能已經選擇了錯誤的解決方案,無論您的問題。

+0

+1。 –

0

PHP將此解釋爲一個參數,因爲您指定了一個字符串,它恰好包含一個逗號;只是要考慮未來。

+0

我知道!我明白了這個問題,只是不知道如何讓PHP理解這個字符串不是'嘿,喲',而是''嘿','喲''' –

0

很簡單的東西是:

function blabla($param1, $param2){ 
    my_cool_code . $param1 . $param2; 
} 

blabla($param1, $param2); 

首先,函數名稱不能有一個 '$'。其次,你只有2個參數,你可以通過這個函數傳遞兩個參數,就像上面一樣。

代碼現在很好用:)