欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

类成员修饰符的疑问

程序员文章站 2022-05-12 14:49:45
...
class a{    private static $p1;    public static $p2;}

如上代码,成员变量前面加private static修饰符和只用private区别在哪呢?同理,public static和public区别又在哪呢?


回复讨论(解决方案)

Static关键字:声明类成员或方法为static,就可以不实例化类而直接访问。不能通过一个对象来访问其中的静态成员(静态方法除外)

private 私有的,只在声明的类中可以访问
public 共有的,可以被任何人访问(默认)
static 静态的,只能用静态方式访问 classname::Identifiers

既然static不用实例化就能访问,那么private static既是私有又不用实例化就能访问?

只有 public static 可以在外部被访问
private static 只能在内部被访问

只有 public static 可以在外部被访问
private static 只能在内部被访问
这么说,private static意义何在呢?跟只用private修饰没什么区别吧?

public、protected、private 公共、保护、私有
这表述的是访问权限

static 表述的是访问方式

不是每个组合都是有意义的

因为在面试时面试官问我private static function有什么用,我疑惑了才上来问问。
但是我百度了一下,貌似有人说用static性能高些。。。

好吧,看样子只有老徐比较热心了。

说用static性能高些 这显然是不对的
静态的方法和函数是一样的,并不能体现出对象的优势

静态方法或者属性,外部可以调用,
private定义,只能在类的内部调用