class application{
public function app(){
}
public function __construct($config) {
}
}
$app=new application(APPLICATION_PATH . DS . 'conf' . DS . 'application.ini');
类application中app方法如何获取实例化后的自己$app;
app方法该怎么写?
php 类中获取实例化后的自身
答案:2 悬赏:20 手机版
解决时间 2021-03-20 16:01
- 提问者网友:暮烟疏雨之际
- 2021-03-20 08:54
最佳答案
- 五星知识达人网友:怙棘
- 2021-03-20 09:36
class aaaa{
private static $instance = null;
public function __construct(){
self::$instance = & this;
}
public static function & getInstance(){
return self::$instance
}
}
调用aaaa:getInstance()就是返回aaaa实例
private static $instance = null;
public function __construct(){
self::$instance = & this;
}
public static function & getInstance(){
return self::$instance
}
}
调用aaaa:getInstance()就是返回aaaa实例
全部回答
- 1楼网友:慢性怪人
- 2021-03-20 09:59
这是php静态数据过早绑定的问题(即子类的all方法是从父类中继承过来的,__class__常量过早的绑定成了父类名),解决这个问题:方法一:class all{ function all() { return __class__; }} class my extends all{ function all() { return __class__; }}//子类定义同名的方法(这其实就是覆盖了父类的方法,让__class__绑定为自己的类名)echo my::all();
方法二:class all{ function all() { return get_class($this); }} class my extends all{}$my = new my();//非静态调用是不存在过早绑定的情况的。echo $my->all();
这个可以看看php5.3.0版本之后的静态迟绑定相关信息(static关键字)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯