php中静态方法的问题
答案:3 悬赏:70 手机版
解决时间 2021-03-26 09:05
- 提问者网友:沦陷
- 2021-03-25 19:01
php中静态方法的问题
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-03-25 19:45
楼上说的差不多
但从理解的角度
self是类内部默认的类名
new self()就是new classname()
这样应该比较好理解
对于静态方法的理解一样,我们在调用静态类的时候用的是classname::function()
那self就是类内部自己的调用classname::function()
代替了一个类名的变量
不在类内部,它也就不可能知道自己是谁
但从理解的角度
self是类内部默认的类名
new self()就是new classname()
这样应该比较好理解
对于静态方法的理解一样,我们在调用静态类的时候用的是classname::function()
那self就是类内部自己的调用classname::function()
代替了一个类名的变量
不在类内部,它也就不可能知道自己是谁
全部回答
- 1楼网友:枭雄戏美人
- 2021-03-25 22:22
实例化自己呗
将构造函数私有化,用getinstance做对外接口 这段代码单态时候经常用
将构造函数私有化,用getinstance做对外接口 这段代码单态时候经常用
- 2楼网友:神也偏爱
- 2021-03-25 21:07
self是一个特殊类,它指向当前类,但只有在类定义内部才有效,它不止要求在类的定义内部,还要求在类的上下文环境,比如 new
self()的时候,这时self就指向当前类。
class a{
public function __construct(){
echo 'yes!!!';
}
public static function getInstance(){
new self();
}
}
a:: getInstance();
返回结果:
yes!!!
self()的时候,这时self就指向当前类。
class a{
public function __construct(){
echo 'yes!!!';
}
public static function getInstance(){
new self();
}
}
a:: getInstance();
返回结果:
yes!!!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯