php static 方法有什么好处

 我来答
s524797336
推荐于2017-11-23 · TA获得超过180个赞
知道小有建树答主
回答量:126
采纳率:100%
帮助的人:187万
展开全部

1、static方法就相当于普通的方法一模一样,但是给方法分了个类。语义化代码。

2、实例化class时不会重新将static方法声明第二遍

比如:

class People{
    private $name;
    public __construct($name = ""){
        $this->name = $name;
    }
    //此方法就不适合用static方法,因为他要使用实例的成员变量name
    public function sayMyName(){
        echo "My name is ".$this->name;
    }
    //类似这种方法的就最好写成static方法
    public static function isMe($obj){
        return get_class($obj) == "People" ? true : false;
    }
}

$me = new People("s524797336");
$me->sayMyName();//输出s524797336
var_dump(People::isMe($me));//输出bool true
//其实如果直接有个方法如下,他的作用跟static方法作用其实是一样的
function isPeople($obj){
    return get_class($obj) == "People" ? true : false;
}
var_dump(isPeople($me));//输出bool true

总而言之,他就是将普通方法封装到了类里面,就像上面,放到people类里面就是isMe,在公用的里面就是isPeople,虽然完成的事情是一样的,但是意义不同


你可以把static方法当成某个class中的共用方法

匿名用户
2016-10-21
展开全部
  1. 静态方法不需要所在类被实例化就可以直接使用。

  2. 静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

  3. 静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坂砬睦
2016-10-21 · 远离喧嚣,别样幽兰!
坂砬睦
采纳数:135 获赞数:1658

向TA提问 私信TA
展开全部
<?php
myclass class{
static function funone(){
echo "hello";
}
function funtwo(){
echo "hello";
}

}
//调用: funone
myclass :: funone();
//如果要调用funtwo 要先实例化
$mod = new myclass();

$mod->funtwo();

?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式