2014-01-26 55 views
0

我有一看PHP脚本(namesilo为WHMCS模块),并发现该功能函数php中的可选参数?

function namesilo_transactionCall($callType, $call, $params) 

后来在脚本中,它被称为用下面的代码

namesilo_transactionCall("getNameServers", $apiServerUrl . "/api/getDomainInfo?version=1&type=xml&key=$apiKey&domain=$sld.$tld"); 

当被调用时只有两个参数,并且在声明该函数时,$ params不是可选的。这怎么可能。我比较新的php

+0

我认为这是不可能的!有些事情是错的 –

回答

1

我看到@Alireza Fallah评论,并决定回答。为什么这是不可能的?

<?php 

    function namesilo_transactionCall($callType, $call, $params){ 
    var_dump($callType); 
    } 

    namesilo_transactionCall(1,1); 
    // OUTPUT 
    1 

?> 

如果犯规通定义未可选agrument - 解释产生Warning,如:

Warning: Missing argument 3 for namesilo_transactionCall() 

设置error_reporting(0) - 和你永远看不到这一点。一般而言,您可以不指定所有参数,如下所示:

function A(){ 
    print_r(func_get_args()); 
} 

// and call 

A(1,2,3,4,5,6,7,8....N); 

而且这段代码可以工作。在PHP中查看更多关于functions的信息。