2013-05-08 128 views
1

我不太確定這是叫什麼或如何搜索它,所以希望這沒有被問過太多次。傳遞函數時通過函數傳遞變量

是否有可能一個變量傳遞給函數的變量裏面的東西一個函數...我知道,沒有什麼意義,所以這裏有一個例子:

sendContact('Firstname Lastname', $email, $address); 

function sendContact(splitWord($name), $email, $address) { 
    //code here 
    print_r($name); 
    //result array[0] = 'Firstname'; 
    //result array[1] = 'Lastname'; 
} 

function splitWord($name) { 
    //code here to split words 
    return $result 
} 

所有我在尋找是sendContact(splitWord())部分。有沒有辦法做到這一點,因爲這似乎並不奏效。

+2

沒了,但你可以叫splitWord()sendContact的()內 – 2013-05-08 03:06:53

回答

1

是的。不要把定義中的函數調用,把它的執行就像這樣:

function sendContact($name, $email) { 

} 
function splitWord($name) { 
    return $result; 
} 

sendContact(splitWord($name)); 
+0

當然..哇,我真不敢相信這並沒有過我的腦海。它一定是一天中的那個時間。 – LeeR 2013-05-08 04:28:19

-1

不是。最直接的解決方案可能是一個簡單的包裝功能:

function sendAndSplitContact($name, $email, $address) { 
    return sendContact(splitWord($name), $email, $address); 
} 
0

也許你可以在通話過程中打電話給你的其他功能爲你的主..見一個例子:

function sendContact($name, $email, $address) { 
    //code here 
    print_r($name); 
    //result array[0] = 'Firstname'; 
    //result array[1] = 'Lastname'; 
} 

function splitWord($name) { 
    //code here to split words 
    return explode (" ",$name); // Different, but made to prduce an array to show that it works 
} 

sendContact(splitWord('Firstname Lastname'), $email, $address); 

我曾經在同一時期被稱爲splitWord()功能我打電話sendContact();功能

1

爲什麼不直接從你刪除一些工作嗎?

sendContact('Firstname Lastname', $email, $address); 

function sendContact($name, $email, $address) { 
    $name = splitWord($name); // put inside to not duplicate for each call 

    //code here 

    print_r($name); 

    //result array[0] = 'Firstname'; 
    //result array[1] = 'Lastname'; 
} 

function splitWord($name) { 
    //code here to split words 
    return $result; 
} 
+0

'return $ result'上的語法錯誤 – 2013-05-08 03:13:06

+1

@Daryl Gill固定,thanx。 – BlitZ 2013-05-08 03:13:47

0

如果你是'真正的程序員',那麼寫這樣的代碼是不好的做法。如果函數內涉及很多函數,則應該使用OOP方法。

class Email 
{ 

    function splitWord($name) 
    { 
     // the jobs of split 
    } 

    function sendContact($name, $email, $address) 
    { 
     $receiver = $this->split($name); 
     mail($receiver, $email, $address); 
    } 
} 
+0

「真正的程序員」並不是到處都是對象。 OOP在需要時很好,而不是強迫。 「面向OOP的OOP」並不好。 – BlitZ 2013-05-08 03:33:24

+0

是的,OOP使你的代碼乾淨。 – 2013-05-08 03:39:45

+0

那些只是例子。 'splitWord'函數並不僅僅針對'sendContact'函數。我只是把它們放在那裏給我想要實現的內容。不過謝謝。 – LeeR 2013-05-08 04:29:15