__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在类中表示自身,在类中调用自身的方法和属性等
对象生成后可以在外部增加对象的属性,但是不好