结果:
代码:obj.php
<?php
namespace admin;
class People{ public $one=100;//属性 public $two=200;//属性
//真正生产环境中用 public function getinfo() { // $obj= new self();// 可以推出==> $this =new self(); // 而$this 指的类本身,所以就不需要再实例化了 // echo $this->new;//而函数一般用return,所以 return $this->two; } //构造函数的创建 //称为构造方法或魔术方法,实例化类的时候,会自动调用 public function __construct($pram1,$pram2) { $this->one=$pram1;//把第一个参数 赋值给one属性 $this->two=$pram2;//把第一个参数 赋值给two属性 //echo $this->getinfo();//在类 内部调用,类中的方法 //结果:值是:最后 }}
echo (new People(1,2))->getinfo();//这是一种简化的调用echo "简化的调用<hr>";$obj= new People("第一","最后");echo $obj->one;echo $obj->two;echo "<hr>";//创建子类//作用:子类扩展父类的功能
class Chinese extends People { public $three=3; public function __construct($pram1,$pram2,$pram3) { parent::__construct($pram1,$pram2);//调用父类的构造函数给相关属性赋值 $this->three=$pram3; }
public function sum()//功能扩展 { return $this->one + $this->two; }
}
class Jap extends Chinese { //方法重写 public function sum()//这里又写了一个SUM方法,相当于方法重写 { $all = parent::sum();//调用父类中的sum方法,当然也可以不调用 if($all>500){ return $all * 0.8;//返回折扣 } }
} $chi= new Chinese(300,500,600); echo $chi->sum();//之前的价格echo "<hr>"; $jp= new Jap(300,500,600); echo $jp->sum();//返回折扣价 // //总结:子类中没有方法,就调用你类中的方法 // //若子类 和父类和同样的方法,则调用子类中的方法