php对象写法,php面向对象

面向对象在很多语言,如c,java,c++,c#等语言中都有,它与面向过程的区别在于:面向过程实现功能时使用几十个代码块,而面向对象可以使用一个广泛的代码块实现功能。

在分享php的面向对象之前我们先来看看js的面向对象,他们的写法都相同之处,我们可以对比着学习。

js的面向对象

js的面向对象首先定义一个函数,函数名首字母要大写,是习惯规定。传入参数,函数里面的this指向这个函数,定义函数的name,age属性,也可以定义一个函数。然后实例化对象,传参传入相应的值,js还可以直接用 对象名.属性 来设置属性。

function Mylover(name,age){

this.name = name;

this.age = age;

this.shop = function(){}

}

// 创建一个对象

var _mylover = new Mylover("wss",19);

// 给对象一个属性like

_mylover.like = "打游戏";

console.log(_mylover);

打印的Mylover对象如下:

29345d98844f

js.png

php的面向对象

首先定义一个类

使用public,protected,private来定义属性,类里面可以定义一个方法。

构造函数: __construct前面是两个下划线,作用是:实例化的类的时候,会自动执行。一般用于类的初始化,比如给属性赋值

// 定义对象 class

class Student{

// 属性

public $name;

public $age;

public $sex;

// 定义一个方法

public function study(){

echo "数学";

}

// 构造函数 __construct

public function __construct($name,$age,$sex){

$this->name = $name;

$this->sex = $sex;

$this->age = $age;

}

}

实例化类

$Student称为类Student的实例

$Student = new Student("ltt","22","女");

对象的属性和方法

使用 -> 符号执行对象的方法或者属性

$Student->study();

类的继承

上面定义了一个Student类,现在再定义一个大学生类,这个肯定有些属性和学生类相同,但肯定也有一些自己独特的属性,比如:学分(score)。

使用 extends 关键字继承Student的类。析构函数里,继承Student类里的方法使用关键字 parent::这样Bigstudent就继承了Student里的$name,$sex,$age三个类。

class Bigstudent extends Student{

public $score;

public function __construct($name,$sex,$age,$score){

parent::__construct($name,$sex,$age);

$this->score = $score;

}

}

下面实例化Bigstudent

Bigstudent是子类,Student是父类;子类:就是继承父类,通过继承,子类可以获得父类的属性与方法。

$s1 = new Bigstudent("张三","男","18","80");

$s1->study();

echo $s1->name.$s1->sex.$s1->age.$s1->score;

结果图:

29345d98844f

结果图.png

public、protected、private

public 属于公开的属性,外部可以直接访问

protected 保护的 这是子类能访问到,但是外部不可以访问

private 私有属性 -只有类自己内部能操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值