PHP入门04 -- 面向对象程序设计
一 、PHP实例化对象
1、注意:在类的成员属性前面一定要有一个修饰词,如果不知道使用什么修饰词,就可以使用 var(关键字),如果一旦有其它的修饰词就不要有 var。
2、只要是对象中的成员,就必须使用这个对象来访问到这个对象内部的属性和方法
3、构造函数
1、是对象创建完成之后,第一个自动调用的方法(特殊);
2、方法名比较特殊,可以和类名相同名的方法名;
3、给对象中的成员赋初始值使用的,传参方式
<?php class BoyFriend { //变量(成员属性) var $name = "张三"; var $age = 18; var $height = "175cm"; var $sex; //构造方法: $this => 类本身;sex=>变量;$sex=>初始化参数、 //一开始就会执行(自动执行), function BoyFriend($sex){ $this -> sex = $sex; } //函数(成员方法) public function fnO($row, $cal){ return "功能一"; } } //使用类前必须先 new $bf1 = new BoyFriend(); //调用类中的参数:->sex 不需要加 $ echo $bf1 -> sex."<br>" //调用类中的方法,需要传参数必须传 echo $bf1 -> fnO("1", "2"); ?>
4、封装性是面向对象编程中的三大特性之一,封装就是把对象中的成员属性和成员方法加上访问修饰符,使其尽可能隐藏对象的内部细节,以达到对成员的访问控制(切记不是拒绝访问)。
5、public (公有的 默认的)、private (私有的)、protected (受保护的)
6、魔术方法
__get()
1、自动调用,是在直接访问私有成员时,自动调用! 一个参数;(用于替代通用的set赋值方法)
__set()
2、自动调用,是在直接设置私有属性时,两个参数;(用于替代通用的get取值方法)
__isset() 在是用 isset() 判断一个私有属性时否存在时,自动调用 __isset() 魔术方法,参数则是属性名称;(检测对象中成员属性是否存在)
__unset() ;(销毁对象中成员属性方法)
二、类的继承性、扩展性
1、子类使用 extends 继承父类 子类可以将父类中所有的内容继承过来;
2、private:私有的, 只能类自己用,不能别人用,包括自己的子类也不能用;
3、protected:保护的权限,只能是自己和自己的子类中可以使用的成员,不能再外面使用
4、pulic: 公开的权限(默认),所有都可以,自己,子类,类外部都可以使用
class Person { public $name; protected $age; protected $sex; //引入参数 function __construct($name, $age, $sex) { $this->name = $name; $this->age = $age; $this->sex = $sex; } public function say() { echo "我的名子是:{$this->name},我的年龄是:{$this->age},我的性别是:{$this->sex}。<br>"; } function eat() { echo "11111111111111<br>"; } function run() { } } class Student extends Person{ var $school; function study() { } } class Teacher extends Student { var $gz; function jiao() { echo "我的名子是:{$this->name},我的年龄是:{$this->age},我的性别是:{$this->sex}。<br>"; } } $t = new Teacher("高洛峰", 30, "男"); $t -> jiao(); echo $t->name;