后端开发|php教程
nbsp,self,db,function,private
后端开发-php教程
使用了单例模式的类,有一些关于其静态成员的问题
微群网网站源码,ubuntu卸载网易云,公众号爬虫 抓取,php正则性别,邵阳seo托管lzw
本帖最后由 fox_lin 于 2015-11-16 17:08:20 编辑
物流车辆定位系统源码,vscode怎么引入图片,ubuntu 开机 只读,tomcat静态文件403,sqlite建的数据库不见,java爬虫实现反爬虫,php安装扩展模块,惠州seo建站优化价格,php网站发布到百度云,科讯 自定义表单模板lzw
如下单例模式的数据库类:
ssh extjs 源码,vscode快捷键无法调试,ubuntu 退出用户,tomcat替换页面内容,sqlite 自动插入,网页设计的个人,如何组建根域名服务器,积分商城兑换交易插件,前端app框架 原生,爬虫爬网址,php经典案例,seo手机端优化,springboot群集部署,网站支付宝接口代码,网页右下角 聊天室,扁平化网页模板,magento 后台慢,手机上页面出现抽奖,图书馆管理系统毕业设计,手机软件程序代码lzw
class Database{
static private $db;
private function __construct(){
}
static function getInstance(){
if(self::$db){
return self::$db;
}else{
self::$db = new self();
return self::$db;
}
}
}
有一个说法是:静态方法不能调用非静态成员。
那么这个类的定义里有这么一句:self::$db = new self();这个self()方法不就是非静态的构造函数吗?
还是“静态方法不能调用非静态成员”这个说法是不准确的?请各位前辈指教一下。
——解决思路———————-
self 和 $this 都是指类本身
只不过前者用于静态方法中,后者用于动态(实例化后的对象)方法中
new 是实例化类,构造函数不可能是静态的
注意,由于历史的原因,关闭掉 E_STRICT 级别检查,php 的类就没有静态不静态了