2013-03-16 114 views
0

我想知道如果有一個PHP「字符串...字符串數組」等同,這東西能根據「字符串數組」參數建立一個數組,即Java「的字符串... someStrings」等同於PHP

Java:

public void method1(){ 
    int aNumber = 4; 
    String string1 = "first string"; 
    String string2 = "second string"; 
    String string3 = "third string"; 

    processStrings(aNumber, string1, string2, string3); 
    /* 
     string1, string2 and string3 will become b = {string1, string2, string3} 
     in function "processStrings" 
    */ 
} 

public void processStrings(int a, String...b){ 
    System.out.println(b[0]); //in this case it will print out "first string" 
    System.out.println(b[1]); //in this case it will print out "second string" 
    System.out.println(b[2]); //in this case it will print out "third string" 
} 

有沒有辦法用PHP來做同樣的事情?

我知道我可以使用

function processStrings($a, $b){} 

,然後調用它像這樣

function method1(){ 
    $myInt = 4; 
    $strings = array("first string","second string","third string"); 
    processStrings($myInt, $strings); 
} 

但我想知道是否有傳遞的參數,比如我做一個未定義的數字的方式與Java

+0

你有超過一千的聲望。我相信你可以爲你的問題想出一個更好的標題。 – 2013-03-16 16:04:21

+0

有一個與你有關的問題,你看到了嗎? http://stackoverflow.com/questions/10128477/call-function-with-unknown-variable-number-of-parameters – 2013-03-16 16:11:15

+0

@GökhanÇoban不,我沒看到它,但我需要我的功能,要求至少2個參數(可能無需手動檢查func_num_args> = 2)... – BackSlash 2013-03-16 16:21:10

回答

0

從PHP手冊:func_get_args()

<?php 
function foo() 
{ 
    $numargs = func_num_args(); 
    echo "Number of arguments: $numargs<br />\n"; 
    if ($numargs >= 2) { 
     echo "Second argument is: " . func_get_arg(1) . "<br />\n"; 
    } 
    $arg_list = func_get_args(); 
    for ($i = 0; $i < $numargs; $i++) { 
     echo "Argument $i is: " . $arg_list[$i] . "<br />\n"; 
    } 
} 

foo(1, 2, 3); 
?> 

雖然你可以做到這一點,但我並沒有在你的函數中定義任何參數,因爲當任何定義的參數被省略時,它會變得非常混亂。

+0

如果需要至少有2個參數,該怎麼辦?即'function1($ a,$ b [,$ c ...])'我該怎麼做(可能不需要手動檢查'func_num_args> = 2')? – BackSlash 2013-03-16 16:25:15

+0

您可以定義參數,因爲我沒有在我的答案中提供。你應該知道func_get_args()將所有的參數作爲數組。 – 2013-03-16 16:26:08

+0

在你的使用方式中,php沒有確切的等價物。 – 2013-03-16 16:31:35