代码之家  ›  专栏  ›  技术社区  ›  Oscar Godson

传递PHP函数中的未定义项并保留默认值

php
  •  0
  • Oscar Godson  · 技术社区  · 8 年前

    我有一些这样的代码:

    function mailer($email, $subject, $body, $from = '"MyApp" <noreply@myapp.com>', $replyto = '"MyApp" <noreply@myapp.com>') {
    

    我想称之为,本质上,就像:

    mailer('foo@bar.com', 'FooBar', "Foo bar baz...", NULL, 'reply@to-me.com')
    

    然而,发生的情况是NULL作为有效值传递,因此它尝试通过电子邮件发送NULL。我想要的是通过 没有什么 对于 $from 所以它使用默认值,但我为 $replyto

    在JS中,您可以 undefined 对于$from字段,它将使用默认值。如何在PHP中实现这一点?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Nigel Ren    8 年前

    您可以将其重写为null作为默认值,并在函数中添加所需的默认值。。。

    function mailer($email, $subject, $body, 
             $from = NULL, 
             $replyto = '"MyApp" <noreply@myapp.com>') {
        if ( $from == NULL ) {
            $from = '"MyApp" <noreply@myapp.com>';
        }
    

    没有那么优雅。

        2
  •  2
  •   MuratBa    8 年前

    由于没有像JS中那样未定义的功能,您可以更改方法签名中的参数顺序,并将$from放在最后一个位置。另一种方法是将默认值存储在函数体中,当给定参数为null时可以应用该函数体。希望这有帮助。

    推荐文章