PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

类成员修饰符的疑问

原创
2016-06-23 14:00:06 669浏览

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定义,只能在类的内部调用

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。