2015-03-19 71 views
1

你好我只是測試的東西,理解概念通串入功能爲2個或更多參數

我嘗試這樣做:

$args = "'file.txt', 'w'"; 
fopen($args); 

但FOPEN將其視爲一個參數

什麼時我錯過了?

+0

你不能做到這一點,正確的做法是使用兩個變量 – adeneo 2015-03-19 12:59:08

+0

你有一個特定的原因,你爲什麼要這麼做? – Ghost 2015-03-19 13:00:09

+2

其他的(醜陋的)選項就像是'call_user_func_array(fopen,array('file.txt','w'))' – adeneo 2015-03-19 13:00:11

回答

1

在PHP 5.6,你可以使用argument unpacking這在我看來是最接近你嘗試過什麼:

$args = ['file.txt', 'w']; 
fopen(...$args); 
+0

嗯,我不認爲OP想重寫'fopen()'函數並重新編譯它 – Rizier123 2015-03-19 13:15:25

+0

這個開箱即用,使用PHP 5.6.3(Windows)和5.6進行測試。 6(Linux)。另見http://php.net/manual/en/migration56.new-features.php – 2015-03-19 13:22:46

+0

你是對的!不知道他們改變/升級了PHP 5.6.6中的函數(我想知道他們是否完成了所有功能,必須測試:D) – Rizier123 2015-03-19 13:28:02

0

你不能像這樣傳遞參數。做到這一點的方法是如下:

<? 
$args = array("file.txt","w"); 
$fopen($args[0],$args[1]); 
?> 
1

你要做的就是創建一個什麼字符串,它是「‘file.txt的’,‘W’」,並提交作爲一個參數。

fopen()方法簽名:

的fopen(字符串$文件名,字符串$模式[,布爾$ use_include_path = FALSE [,資源$背景]])

你想要什麼做的是:

$file = 'file.txt'; 
$mode = 'w'; 
fopen($file, $mode); 
0

你應該把2個參數fopen()函數

<? 
$args = array("file" => "file.txt", 
       "option" => "w"); 

fopen($args["file"],$args["option"]); 
?>