php6.20

php6.20笔记

1、关键问题this是否代表所在类对象——视对象环境而定。
2、self和static关键词的使用,self永远代表当前类,而static除了做静态命名的关键字还充当代表调用,即
<?php
class A{
public static $name="A";
function a(){
echo self::$name;
}
function b(){
echo static::$name;
}
}
class B extends A{
public static $name="B";
}
B::a();
B::b();

输出结果为AB
3、总结:
Static的作用:
1, 声明静态局部变量
2, 声明静态成员
3, 当前调用类,静态延迟绑定

类中可以使用的绑定类的关键字:
Self:: 当前定义类
Static:: 当前调用类
Parent:: 父类
4、类管理、自动加载、多自动加载,使用require或者include,一般不考虑用带once的用法。自动加载使用定义__autoload()函数来加载所需要的php类或文件。自动加载一般采用映射匹配或者规则匹配。多自动加载问题,由于只能调用一个 __autoload()函数,所以采用自定义函数,并且注册为自动加载,使用spl_autoload_regiser(函数名)来注册。注:尽量使用注册自动加载函数,防止项目中被失效。
5、设计模式:单例模式、工厂模式;
*1、单例模式:当一个类只需要使用一个对象就能够完成操作,如数据库操作类,为了省去多余的实例开销,采用单例模式;

<?php
class m{
    private static $instance;
    private function __contruct(){

    }
    private function __clone(){
        //防止被克隆
    }
    public static function getInstance(){
        //判断当前类实例是否存在
        if( !self::$instance instanceof self){
            self::$instance=new self;
        }
        return self::$instance;
    }
}

采用三私一公,但是实际开发中不建议使用这种方法,因为不可能为每个需要单实例的类重新改造成这样。
建议使用架构上单例

<?php
function getinstance($className){
    static $instance = array();
    if(isset($instance[$className])&&$instance[$className] instanceof $className){
        return $instance[$className];
    }else{
        return $instance[$className]=new $className;
    }
}

*2、工厂模式:一个类的主要功能,用于生产其他类的对象,此时该类称之为工厂类,这种编程模式,称之为工厂模式。典型为静态工厂。
一般工厂模式常常配合抽象类和接口来完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值