php 面向对象基础

对象: 拥有相同属性和方法的集合
class 类名(首字母大写或者驼峰式){
public 属性名=属性值;//类属性
//类的方法
public function 方法名(){

}

对象操作:
$xx(保存实例化结果)=new 类名

$xx->属性 访问对象的属性
$xx->方法() 访问对象的方法
$this->属性 本类的属性
$this->方法() 本类的方法

例子:

<?php
//计算类
class CountNum{
public $a=5;
public $b=6;
/*
类里面的变量仍然是局部变量
*/
public function add(){
$this->test();
//var_dump($this->a);exit;
return $this->a+$this->b;
}
public function mid(){
return $this->a-$this->b;
}
public function plus(){
return $this->a*$this->b;
}
public function chu(){
return $this->a/$this->b;
}
public function test(){
echo 1;
}
}

$c=new CountNum;//实例化计算类
$c->a=7;
$c->b=6;
var_dump($c->add());
var_dump($c->mid());
var_dump($c->chu());
var_dump($c->plus());

面向对象三大特性:
1.继承 extends
子类可以全部继承父类的公开方法和属性

2.重载
子类可以改写父类的方法和属性

3. 多态 (不支持多态)

对象魔术函数
1.__construct() 构造函数
类实例化的时候自动调用
2.__destruct() 析构函数
类销毁

<?php
class Person{
/*人类的属性*/
public $eye='黑色';
public $mouth='';
public $foot='';

public function __construct($f='缓慢爬行',$m='嗷嗷嗷'){
echo '新人类诞生啦<br/>';
$this->mouth=$m;
$this->foot=$f;
$this->move();
$this->say();
}
/*
人类的行为
*/
public function move(){
echo $this->foot.'<br/>';
}
/*
人类的语言
*/
public function say(){
echo $this->mouth.'<br/>';
}

public function __destruct(){
echo '新人类死亡啦<br/>';
}
}

class GoodPerson extends Person{
public $eye='蓝色';
public function move(){
echo '我是神奇大侠<br/>';
}
public function move($word){//不支持多态
echo '我是神奇大侠1<br/>';
}
}
/*
$p=new Person;
//$p->move();
//$p->say();
unset($p);
$p1=new Person('快速爬行','呃呃呃');
unset($p1);
$p2=new Person('飞速爬行','哟哟哟');
unset($p2);
*/
$gp=new GoodPerson;
echo $gp->eye.'<br/>';
posted @ 2016-07-18 17:45  如此的如此。不過如此  阅读(161)  评论(0)    收藏  举报