OOP中->与::操作符的区别
程序员文章站
2022-06-01 22:23:14
...
OOP中->与::操作符的区别有哪些?度娘不给力,找不到
回复讨论(解决方案)
static关键字修饰的变量,外部调用只能是::
static关键字修饰的方法,外部调用->和::皆可,习惯上用::,静态方法不能操作非静态变量
暂时想到就这些,楼下补充
->是实例调用
::是类中静态方法和静态属性的引用方法
-> 表示对象的成员
:: 作用域分辨运算符。手册中说:在没有声明任何实例的情况下访问类中的函数或者基类中的函数和变量很有用处。而 :: 运算符即用于此情况。
虽然 php 5.3 以后对 :: 的用法做了点限制,但总体并没有太大出入
1.如果function被定义成static 那么访问的时候,直接类名::方法名,静态属性同理。
2.如果只是定义function 方法名(),那么访问的时候,需要实例化类,$p = new xx(); $p->方法名();