加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 如何获取可选参数的默认值

发布时间:2020-05-25 09:07:54 所属栏目:PHP 来源:互联网
导读:可能这是 PHP的限制,但是有可能以某种方式调用函数 – 并强制执行可选参数的’default’值 – 即使在函数调用中,给出了可选参数(和== null)? 也许更容易表明我的意思: ?php function funcWithOptParam($param1, $param2 = optional) { print_r(param2: . $p

可能这是 PHP的限制,但是有可能以某种方式调用函数 – 并强制执行可选参数的’default’值 – 即使在函数调用中,给出了可选参数(和== null)?

也许更容易表明我的意思:

<?php
    function funcWithOptParam($param1,$param2 = 'optional') {
        print_r('param2: ' . $param2);
    }

    funcWithOptParam('something'); // this is the behaviour I want to reproduce

    // this will result in 'param2: optional'

    funcWithOptParam('something',null); // i want $param2 to be 'optional',not null

    // this will result in 'param2: ' instead of 'param2: optional'
?>

现在,最简单的答案是“不要写null然后” – 但在我的特殊情况下,我得到一个函数调用的参数数组,并且只能这样做:

<?php
    funcWithOptParam($param[0],$param[1]);
?>

因此,即使$param [1]为null,null也将覆盖可选参数的默认值

我只看到一个解决方案 – 跳过可选参数,并按以下方式执行:

<?php
    function funcWithOptParam($something,$notOptional) {
         if($notOptional === null) {
              $notOptional = 'defaultvalue';
         }

         ...
    }
?>

但我想知道是否有另一种解决方案. PHP中是否存在“真正的”空值?这真的转化为“什么都没有”?像js中未定义的东西?

为什么不将整个数组作为函数参数传递?
你只需这样称呼它:
funcWithOptParams($params);

并像这样处理它:

function funcWithOptParams($params) {
     if(!isset($params[1])) {
          $params[1] = 'defaultvalue';
     }

     ...
}

此方法使您可以仅传递要指定的参数,并在您不想指定的参数中使用默认值.作为奖励,您不必担心参数的顺序.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读