PHP中可选参数是不是必须在必选参数之后?
PHPz
PHPz 2017-04-10 13:10:19
0
4
922
public function addHost($groupId, $nodeId = "node_0", $role = "master", $hostConfig) { //..... }

在我映象中一直都是必选参数定义在可选参数之前的,上面这段代码是在 lotusphp 中看到的源码,请问这样定义如何使用呢?

PHPz
PHPz

学习是最好的投资!

全員に返信 (4)
数据分析师

PHP のオプションのパラメーターは必須パラメーターの後に来る必要がありますか? -PHP中国語ウェブサイトQ&A-PHPのオプションパラメータは必須パラメータの後に来る必要がありますか? -PHP中国語サイトQ&A

ぜひ見て学んでください。

いいねを押す+0
    伊谢尔伦
    function test($a, $b = 3, $c = 4 ,$d) { echo $a.$b.$c.$d; } echo test(4, "", "", 9); //打印结果 //49 echo test(4, null, null, 9); //打印结果 //49

    实际上 $b = 3, $c = 4 的默认值永远不会设置成功的。
    如果第四个参数是必选参数,那么使用函数时必须有四个以上参数,此时默认参数无意义。

    いいねを押す+0
      左手右手慢动作

      1. 你的印象不正确,必选参数和可选参数没有顺序的,不一定要把可选参数放在最后
      2. lotusphp的addHost()方法设计成这样,主要是因为group, node, role在概念层次上是渐进的,颠倒次序逻辑上不利于记忆,而config
      3. 调用方法就是addHost("global_group", , , array("host"=> "127.0.0.1")),更多调用方法请参见lotusphp/unittest/Db/RightWayToUse.php

      いいねを押す+0
        洪涛

        楼上正解,php中不讲究默认参数的位置,但是调用的时候又不能隔开,如
        function test($a,$b=3,$c=4 ,$d)
        {
        echo $a.$b.$c.$d;
        }
        echo test(1,2,3,5);//可以通过
        echo test(1,,,5);//错误

        いいねを押す+0
          最新のダウンロード
          詳細>
          ウェブエフェクト
          公式サイト
          サイト素材
          フロントエンドテンプレート
          私たちについて 免責事項 Sitemap
          PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!