MENU

PHP中private、public、protected的区别详解

• March 15, 2020 • Read: 2716 • 代码分享,原创作品

前言

简单描述下

public 【公共的】

可以在程序中的任何位置(类内、类外)被其他的类和对象调用。子类可以继承和使用父类中所有的公共成员。

Private 【私有的】

被private修饰的变量和方法,只能在所在的类的内部被调用和修改,不可以在类的外部被访问。在子类中也不可以。 如果直接调用,就会发生错误。

Protect 【受保护的】

用protected修饰的类成员,可以在本类和子类中被调用,但是在其他地方不能被调用。

public: 公有类型

在子类中可以通过 self::属性名(或方法名) 调用public方法或属性,parent::方法名 调用父类方法

在实例中可以能过 $obj->属性名(或方法名) 来调用 public类型的方法或属性

protected: 受保护类型

在子类中可以通过 self::属性名(或方法名) 调用protected方法或属性,parent::属性名(或方法名) 调用父类方法。

在实例中不能通过 $obj->属性名(或方法名) 来调用 protected类型的方法或属性

private: 私有类型
该类型的属性或方法只能在该类中使用,

在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法

self 和parent 的区别
a).在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用

b).self:: 它表示当前类的静态成员(方法和属性)与 $this不同,$this是指当前对像

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

2 Comments
  1. 空空 空空

    大佬,你用的是typecho吗?

  2. 空空 空空

    可以的@(哈哈)