美文网首页
静态及单例-PHP

静态及单例-PHP

作者: 与子笑 | 来源:发表于2018-05-20 09:27 被阅读0次

php 2016-07-01 04:01:05

静态变量,静态属性,静态方法。

静态变量:当你声明一个普通局部变量,在函数中调用时会在内存中申请一块空间,函数结束后,返回一个值,空间被清除。而当你申明一个静态变量时,将这个变量在函数中运算改变以后,这个静态变量不会从内存中消失,保留的值是进行运算改变后的值。静态变量应用范围比较广,可以避免多次链接。下面有一个thinkphp中的C函数的例子。

public function C($k,$v){

    static $cfg = array();

    $cfg[$k] = $v;

    return $cfg;

}

静态属性,静态方法,不依赖于对象即可调用某个类里面的属性或方法,这个类里面的属性和方法前加static。反正我是没用过其他的,其中一个单例模式 还是有用到。传说中可以用作接口,还有说直接调用类里面的方法和属性,比实例化一个后再调用速度更快的,在我看来这种速度比较一文不值。

单例模式的意义在于控制对象只能被实例化一次,并且是被自身new,防止外部new.

class link{

    protected static $link = null;

    protected function __construct(){   //被自身调用的时候会触发

        $this->link = mysql_connect('localhost','root','');

    }

    private fucntion __clone(){

    }    //外部克隆自动触发这个方法,这个方法是私有,会报错。

    public static function getlink(){   //没有链接资源就new自身创建一个资源,已经有的话直接返回。

        if($link==null){

            self :: link = new self();

        }

        return self::link;

    }

这里用到了静态方法和静态变量,静态方法不用再被new了,直接调用link::getlink();就会返回一个链接资源,保存起来返回的值就可以直接使用了。其实要实现单例模式,可以偷偷懒做个全局变量哦。

相关文章

  • 静态及单例-PHP

    php -2016-07-01 04:01:05 静态变量,静态属性,静态方法。 静态变量:当你声明一个普通局部变...

  • 静态及单例-PHP

    静态变量 当你声明一个普通局部变量,在函数中调用时会在内存中申请一块空间,函数结束后,返回一个值,空间被清除。 而...

  • 链家-开发商端-面试题

    php php常用的数组及用法 php魔术函数 php私有成员变量 列举常用的打印函数及区别 实现一个单例模式 调...

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android - 常见内存泄漏

    单例 单例静态对象持有activity引用,且因静态对象生命周期比activity还长,当act被销毁时,单例中的...

  • 常用的设计模式

    单例模式:Singleton 单例:静态变量,私有构造器,静态方法 分类: 懒汉单例 :在第一次调用的时候实例化自...

  • 实现单例类

    注意静态方法不能调用对象属性 所以要把单例存在静态变量中 更高效的单例

  • 静态方法、单例模式区别

    观点一:(单例) 单例模式比静态方法有很多优势:首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集...

  • 反射破坏单例模式(静态内部类)

    java反射,破坏单例模式 静态内部类 反射实例化单例

  • 单例模式

    饿汉模式: 懒汉模式: Double CheckLock(DCL)实现单例 静态内部类实现单例 枚举单例 使用容器...

网友评论

      本文标题:静态及单例-PHP

      本文链接:https://www.haomeiwen.com/subject/hlmzdftx.html