搜索
博主信息
博文 25
粉丝 0
评论 0
访问量 20105
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP不常用特性总结
力挽狂澜的博客
原创
969人浏览过

1.可变参数列表 要求v5.6+

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);//10
?>

v5.5及以前

<?php
function sum() {
    $acc = 0;
    foreach (func_get_args() as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);//10
?>


2.Trait[特性的属性和方法可被调用的类吸收] 要求v5.4+

<?php
//同名冲突解决方案,默认优先级为 trait覆盖父类,子类覆盖trait.子类中多个trait有同名冲突需要显式使用insteadof
操作符来指明使用冲突中的哪一个 可以衔接as 给trait的func取别名,也可以单独使用as更改trait的func的访问权限
class people {
    public function __construct(){
        echo '我是人类<br/>';
    if(method_exists($this, 'init')){
        $this->init();
    }
    }
}

Trait child {
    public function cry(){
        echo '我会child哭';
    }
    
    private function init(){
        echo '我是小孩<br/>';
    }
}

Trait boy {
    public function cry(){
        echo '我会boy哭';
    }
    
    protected function init(){
        echo '我是小孩<br/>';
    }
}

class student extends people {
    use child,boy{
        child::init insteadOf boy;
        boy::cry insteadOf child;
        init as public;
    }
    // public function init(){
    //     echo '我是学生<br/>';
    // }
}
$student = new student;
$student->cry();
exit;


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学