问各位大侠,我在完成的时候,类实例化的时候,一般一个页面 new 一次,但可能会忘记自己已经实例化过了,在写构造函数的时候 function logic($uinfo)
{
self::$ouname;
self::$ouwd=$uinfo;
}
private function logic($uinfo)
{
self::$ouname;
self::$ouwd=$uinfo;
} 这两种构造函数,哪种可以保证类的实例化一个页面只进行一次,或者说 我的理解直接就是错的解法应该是哪种???期待,想理解的更深一点盼大侠指点
{
self::$ouname;
self::$ouwd=$uinfo;
}
private function logic($uinfo)
{
self::$ouname;
self::$ouwd=$uinfo;
} 这两种构造函数,哪种可以保证类的实例化一个页面只进行一次,或者说 我的理解直接就是错的解法应该是哪种???期待,想理解的更深一点盼大侠指点
将构造函数定义成private
再定义一个static 变量,再定义一个init 函数就OK了
private function logic($uinfo)
{
self::$ouname;
self::$ouwd=$uinfo;
}
public function add()
{
echo "Uname:'".self::$ouwd->传入的参数."'";
}5楼的兄弟:init 函数的定义如何操作?
{
static public $ouname;
static public $oupwd ; function ophp()
{
self::$ouname = '';
self::$oupwd='';
}
}
class phptest
{
static private $_ophptest;
private function phptest($ophptest='')
{
self::$_ophptest = $ophptest;
//return self::$a;
}
public function oadd()
{
$Sql="数据uname='".self::$_ophptest->ouname."',密码upwd='".self::$_ophptest->oupwd."'";
echo $Sql;
}
}以下是 运行结果,我理解错了,郁闷
private function phptest($ophptest='')
{
self::$_ophptest = $ophptest;
//return self::$a;
}
的时候,
抛弃外部 new phptest();
1:
$oophp = new ophp();
$oophp->ouname='shang';
$oophp->oupwd='wai';
$lophp=new phptest($oophp); Fatal error: Call to private phptest::phptest() from context 2:
echo phptest::oadd($oophp); Notice: Trying to get property of non-object
if(self::$__instance == NULL){
self::$__instance = new class_name;
}
return self::$__instance;
}