方法的方法的默认参数?

时间:2013-02-25 18:04:27

标签: php codeigniter-2

我有源代码,但我遇到了问题。

您可以在此处找到源代码:http://pastebin.com/6JHkTFEv

错误在于:http://i.imgur.com/V4pPZkI.png

为什么总是给我这个错误信息?

问题出在这一行:

public function upload_sms_data( $sms_id, $prefix, $uzenet, $telefonszam, $kategoria, $ip_address = $this->get_client_ip()) {

程序由最后一个参数停止:$ip_address = $this->get_client_ip()

我可以为方法提供默认参数吗?

3 个答案:

答案 0 :(得分:0)

您不能将参数的默认值设置为函数调用的结果。它必须是一个价值。

答案 1 :(得分:0)

不,你不能那样做。最好的办法是将null作为默认值,然后在方法内部(如果该参数为null)则使用getter。

upload_sms_data( $sms_id, $prefix, $uzenet, $telefonszam, $kategoria, $ip_address = null ) { 
   $ip_address = $ip_address === null ? $this->get_client_ip() : $ip_address;
}

答案 2 :(得分:0)

您可以提供默认值,但不能提供需要运行时计算或执行的默认值,例如函数调用的结果

public function upload_sms_data( $sms_id, $prefix, $uzenet, $telefonszam, $kategoria, $ip_address = NULL ) { 
    if ($ip_address === NULL) {
        $ip_address = $this->get_client_ip();
    }