首页 / PHP / PHP

读一读

__clone();  克隆方法
$c = new cl();
$c2 = clone $c;

这时自动调用克隆方法,不写会有默认的。


__toString();//快速获取对象的字符串表示的方法,把对象转换为字符串时调用。这方法必须返回字符串。

__call($methodName,$args);//当调用一个对象不存在的方法时就会调用__call
//用来赋值属性
public function __call($name,$value){
    if(array_key_exists($name,$数组)){
        $this->数组[$name]= $value[0];
    }else{
        //错误
    }
    
    return $this;可以连贯调用
}


//可以在类外,用于实例化一个类时,找不到这个类时自动调用,用来自动引入类,类命名规定好与文件名有同一部分,类文件路径要有规律
__autoload($classname);


//串行化对象,对象和数组是不能保存或传输的,要先转化为字符串,用方法serialize()
//反串行化,用unserialize

__sleep(); //串行化对象时调用
//返回一个数组,表示规定那些属性需要串行化,也只能串行化属性不能是方法

__wakeup();//反串行化对象时调用
//当成员改变是用它来改变

__invoke($x);//当尝试用函数的方式来调用对象的时候被触发



声明构造方法为私有方法,这样外面就不能实例化了。

声明一个私有的静态属性来保存唯一的实例。

声明一个公用的静态方法来获取唯一的实例。


final  只能修饰类和方法

类不能被继承,方法不能被重写,最终的版本


static 静态关键字,修饰类的方法和属性

类::静态属性方法   外界访问

self::静态属性方法  类中访问


const 常量关键字

声明初始化后就不能改变它的值

也是用类名(或self)加::访问


instanceof 用于检测某一个对象是否是属于某一个类的对象或它的子类


extends关键词继承

会继承父类的共有和保护的所有属性和方法

php是单继承的,一个类只能有一个父类


public 共有的,外部可访问

protected 继承类中可访问

private 只能本类中访问


重写父类的方法

直接声明一个继承过来的方法名字相同的方法就行了,

重载,就是重写时加上访问父类原来方法,parent::方法名。


魔术方法修饰为共有的

__set($私有属性名字,$value);//可以给私有的属性在外部赋值,在方法中可以做限制
__get($私有属性名字);//在外部得到私有属性,返回私有变量的值
__isset($name){
    //可以控制返回false
    return isset($this->$name);
};
__unset($name);//外部释放类的私有变量属性,同上差不多,可以控制不释放

private 封装隐藏属性和方法

只能在类中访问,在外面生成对象后不能访问private 声明的


public 共有的,外部可访问

protected 继承类中可访问

private 只能本类中访问

var php5以上默认为public


私有的属性可以通过共有的接口间接公开访问。


function __destruct(参数){}

先生成的后释放,一种栈内存的方式


类生成对象时自动调用的方法

function __construct(参数){}

参数可以有默认值,放在参数的最后面,可以不传。


php可以在字符串中加上变量名连接

$str = "abcdef{$变量}hijk";

双引号才可以


$引用名 =new 类名(构造参数);
$引用名->属性方法;//使用

$this在类中表示自身,在类中调用自身的方法和属性等

对象生成后可以在外部增加对象的属性,但是不好