search

Home  >  Q&A  >  body text

php如何定义一个可以接受null的函数

我定义一个接受String参数的函数,但是调用的时候传一个null进去,php会报一个fatal error,但实际情况确实会出现null参数的情况,我要定义一个即制定了参数类型,又可以接受null的函数该怎么做?

<?php

function foo (String $arg) {
    return ;
}

foo(null);

执行如下

>php t.php

Catchable fatal error: Argument 1 passed to foo() must be an instance of String, null given, called in /Users/jiajun/t.php on line 7 and defined in /Users/jiajun/t.php on line 3
大家讲道理大家讲道理2902 days ago406

reply all(3)I'll reply

  • 天蓬老师

    天蓬老师2017-04-10 14:26:34

    这样写,当你不提供参数的时候,参数默认是null

    <?php
    function foo ($arg = null) {
        return ;
    }
    
    foo();

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:26:34

    把String修饰去掉就行了。

    如果你一定需要判断参数类型,可以用 is_string($arg) 来判断。

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 14:26:34

    http://www.php.net/manual/en/language...

    if NULL is used as the default parameter value, it will be allowed as an argument for any later call

    手册里面已经说得很清楚了

    reply
    0
  • Cancelreply