Rumah > pembangunan bahagian belakang > tutorial php > join函数是如何做到前面的参数可省略的?

join函数是如何做到前面的参数可省略的?

WBOY
Lepaskan: 2016-10-10 11:56:11
asal
1308 orang telah melayarinya

想封装一个功能类似join(implode的别名)的函数,代码如下:

<code><?php #封装函数:join
$arr = array('jack','male',23);
function getJoin($glue="",$arr){
    $str ="";
    foreach ($arr as $key => $value) {
        $str .= $value.$glue;
    }
    $str = substr($str, 0,-1);
    return $str;
}
echo getJoin(",",$arr);</code>
Salin selepas log masuk
Salin selepas log masuk

这样写的话看起来是跟系统函数join差不多,但如果调用时$glue参数不填,就会报错。

我知道有默认值的参数应该放在后面,例如getJoin($arr,$glue=""),这样调用就可以只填$arr参数,但是我看了下手册,系统函数join的参数值是这样的:

join函数是如何做到前面的参数可省略的?

没有中括号表示参数不可省略,而同时他也支持只填一个参数的写法并默认以空字符串作为$glue的值。虽然有说明是因为历史原因,我仍想知道该系统函数函数是如何实现的。

回复内容:

想封装一个功能类似join(implode的别名)的函数,代码如下:

<code><?php #封装函数:join
$arr = array('jack','male',23);
function getJoin($glue="",$arr){
    $str ="";
    foreach ($arr as $key => $value) {
        $str .= $value.$glue;
    }
    $str = substr($str, 0,-1);
    return $str;
}
echo getJoin(",",$arr);</code>
Salin selepas log masuk
Salin selepas log masuk

这样写的话看起来是跟系统函数join差不多,但如果调用时$glue参数不填,就会报错。

我知道有默认值的参数应该放在后面,例如getJoin($arr,$glue=""),这样调用就可以只填$arr参数,但是我看了下手册,系统函数join的参数值是这样的:

join函数是如何做到前面的参数可省略的?

没有中括号表示参数不可省略,而同时他也支持只填一个参数的写法并默认以空字符串作为$glue的值。虽然有说明是因为历史原因,我仍想知道该系统函数函数是如何实现的。

函数重载。。。
http://m.blog.csdn.net/articl...

如果你一定要实现这个效果的话,可以使用php的可变参数数量的声明方法。参见
http://php.net/manual/zh/func...
把参数获取到数组里,通过分析数组来处理。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan