类:
class ParentClass{ public $a=10; public function setVal($val){ $this->a = $val; } public function getVal(){ return $this->a; }}
实例化
$obj = new ParentClass;echo $obj->a."<br>";$obj->setVal(10000);echo $obj->getVal();
构造函数__construct() 当初始化实例的时候会被触发
class obj{ public function __construct(){ echo "the class".__class__."was initialized !!!"; }}new obj;
__destruct() 当实例对象被注销的时候,会自动触发
class obj{ public function __construct(){ echo "the class".__class__."was initialized !!!"; } public function __destruct(){ echo "Happy Ending !!!"; }}$a = new obj;unset($a);
extends 子类继承父类
class childOne extends ParentClass{ }new childOne;
当子类存在的变量或则构造函数和父类的相同的时候,会覆盖父类的变量和方法
如果需要保留父类的构造函数同时触发的话,可以使用parent::__construct();
class childOne extends parentClass{ public function __construct(){ parent::__construct(); echo "this is my construct!!!"; }}new childOne;
访问标识符
public 变量,方法 所有的类都可以访问
protected 变量,方法 该类内部访问或则子类通过方法向上继承的方式才可以访问,子类不可以直接去访问
private 变量,方法 只允许该类自己内部访问
class ParentClass{ public $a =2000; public function __construct(){ echo "the class".__class__."was initialized !!!"; } public function __destruct(){ echo "Happy Ending !!!"; } protected function getVal(){ return $this->a; }}class childOne extends parentClass{ public function __construct(){ parent::__construct(); echo "this is my construct!!!"; }}$ch = new childOne;echo $ch->getVal();
class ParentClass{ public $a =2000; public function __construct(){ echo "the class".__class__."was initialized !!!"; } public function __destruct(){ echo "Happy Ending !!!"; } protected function getVal(){ return $this->a; }}class childOne extends ParentClass{ public function abcd(){ return $this->getVal(); }}$child123 = new childOne;echo $child123->abcd();
静态变量,静态方法,不需要实例化就可以直接使用的
<?php// Your code here!class demo{ public static $count=10; public static function plusOne() { return "The count is " . ++self::$count . ".<br />"; }}echo demo::$count."<br>"; //注意,这里是有$符号的!!!echo demo::plusOne();?>
Reference:
https://code.tutsplus.com/tutorials/object-oriented-php-for-beginners--net-12762