2013-05-08 129 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