> 백엔드 개발 > PHP 튜토리얼 > 使用了单例模式的类,有一些关于其静态成员的有关问题

使用了单例模式的类,有一些关于其静态成员的有关问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-13 12:27:34
원래의
840명이 탐색했습니다.

使用了单例模式的类,有一些关于其静态成员的问题

本帖最后由 fox_lin 于 2015-11-16 17:08:20 编辑 如下单例模式的数据库类:
<br />class Database{<br />	static private $db;<br /><br />	private function __construct(){<br /><br />	}<br />	static function getInstance(){<br />		if(self::$db){<br />			return self::$db;<br />		}else{<br />			self::$db = new self();<br />			return self::$db;<br />		}<br />		<br />	}<br />}<br />
로그인 후 복사

有一个说法是:静态方法不能调用非静态成员。
那么这个类的定义里有这么一句:self::$db = new self();这个self()方法不就是非静态的构造函数吗?
还是“静态方法不能调用非静态成员”这个说法是不准确的?请各位前辈指教一下。
------解决思路----------------------
self 和 $this 都是指类本身
只不过前者用于静态方法中,后者用于动态(实例化后的对象)方法中

new 是实例化类,构造函数不可能是静态的

注意,由于历史的原因,关闭掉 E_STRICT 级别检查,php 的类就没有静态不静态了
관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿