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())零件。有没有办法做到这一点,因为这似乎不起作用。

4

5 回答 5

1

是的。不要将函数调用放在定义中,将其放在执行中,如下所示:

function sendContact( $name, $email ) {

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

sendContact( splitWord( $name ) );
于 2013-05-08T03:05:51.627 回答
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;
}
于 2013-05-08T03:12:08.207 回答
0

也许你可以在调用你的 main.. 期间调用你的其他函数。看一个例子:

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();函数

于 2013-05-08T03:11:28.217 回答
0

如果您是“真正的程序员”,那么编写这样的代码是不好的做法。如果函数内部涉及很多函数,则应该使用 OOP 方法。

class Email
{

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

    function sendContact($name, $email, $address)
    {
         $receiver = $this->split($name);
         mail($receiver, $email, $address);
    }
}
于 2013-05-08T03:30:11.407 回答
-1

并不真地。最直接的解决方案可能是一个简单的包装函数:

function sendAndSplitContact($name, $email, $address) {
  return sendContact(splitWord($name), $email, $address);
}
于 2013-05-08T03:05:40.633 回答