静态属性和静态方法
打赏作者

Mike Dai

jelly:
我在研究OctoberCms时发现了这个应用场景,请先看下视频
https://octobercms.com/support/article/ob-10
作者意图扩展User这个Plugin时,不是简单的改写Plugin而是通过 extend方法,在boot里面设置好关系, 然后,在用户自己定义的Plugin里面写一些扩展Model的。。。当视频 播放到7分钟时,我看到static的应用场景。

Mike Dai

其实说穿了,就是全局方法,一般用在一些自定义的Helper function,比如Laravel的Facade,再说得直观一些,前端开发过程中,比如bootstrap就是一群这个helper (col-md-10, row, img-responsive,…) 这些静态方法的存大仅仅是一种快速得到一些结果而存在的?我的理解正确吗?

lioonline

class Math
{

    public static function add(...$num)
    {
        require array_sum($num);
    }
}

echo Math::add(1,2,3);

抛出了如下的错误


PHP Warning:  require(6): failed to open stream: No such file or directory in /Users/cocoalee/PhpstormProjects/php-oop/Math.php on line 14

Warning: require(6): failed to open stream: No such file or directory in /Users/cocoalee/PhpstormProjects/php-oop/Math.php on line 14
PHP Fatal error:  require(): Failed opening required '6' (include_path='.:') in /Users/cocoalee/PhpstormProjects/php-oop/Math.php on line 14

Fatal error: require(): Failed opening required '6' (include_path='.:') in /Users/cocoalee/PhpstormProjects/php-oop/Math.php on line 14
JellyBool 回复 lioonline

额,你确定你写对文件的名字了么?

lioonline 回复 JellyBool

这就尴尬了,大意了。看了好久就是没有看到这个, return 写成了 require。谢谢

Lfreedom_hai

手动尴尬,没别的,纠正个发音 static的发音是ˈstætɪk 最后是k不是s

Lfreedom_hai

强迫症 你知道就好了 不用理我

Lfreedom_hai

发表了两遍 又要忍不住说了 我应该是点击了一次 重复发表 这个要限制 jelly

MarksGui888

static理解为全局的就行了!

mostwin

刚知道还能用 ...

get it

jonise92

function(…$val)
{
}
…表示可变参数声明 php5.6新特性

Nixus

静态调用,是不是可以换成 trait 呢?
感觉trait更合适

JellyBool 回复 Nixus

trait 其实跟静态应该没什么关系

Nixus 回复 JellyBool

谢谢老师回复
如果只需要代码重用,是不是用 trait 会更好一点儿?

Nixus 回复 JellyBool

谢谢老师分享,get 到了?

ZhangqiwuAhri

Happy hacking