$_SESSION['mycart']=new myCart();如题;
声明:if(!isset($_SESSION['mycart'])) $_SESSION['mycart']=new myCart();
不好使.谢谢
声明:if(!isset($_SESSION['mycart'])) $_SESSION['mycart']=new myCart();
不好使.谢谢
解决方案 »
- 问下PHP里面怎么改名?
- 已经度娘谷哥过了..还是开启不了curl...
- 为什么暑期工作这样难找?
- 弱弱的问一下,开发手机网站和PC网站有啥不一样?
- 如何在一个页面里面打开两个服务器的数据库去查找表单。
- 关于mysql like查询问题
- 谁有用php解压缩目录的类或是例子
- 询问一个视频开发技术的难题
- 用javascript:if(this.width>300)this.width=300缩小的图片再次访问时,因为缓存的原因显示的是大图,怎么办?
- 进入discuz论坛管理界面后为何没有显示?
- 字符串分割数组问题..在线等
- 谁有 session 保存在数据库中的完整源代码?(100分求源代码,不够再加)
<?php
session_start();
class a
{
var $a;
function a()
{
$_SESSION['a_init'] = 1;
}
function b()
{
}
}
$b = new a();
if($_SESSION['a_init'] == 1) echo "已实例化";
?>
不同的版本对面向对象的支持不一样!PHP 5.x的话和其他面向对象程序设计语言的Singleton设计是类似的。
(里面有static成员函数和private访问控制修饰符)PHP 4.x的话一般是通过命名约定,也就是给静态调用的成员函数取__staticMF()这样的名字。
然后再$GLOBALS里面放置一个此类的对象。然后每次使用时调用“静态”的__getInstance()函数。
* return a class's singleton
*
* @param string $classname
* @return object
*/
function & getSingleton($classname)
{
//TODO registry register static $objs = array(); if (isset($objs[$classname]))
{
return $objs[$classname];
}
if (!class_exists($classname))
{
loadClass($classname);
}
$objs[$classname] = new $classname();
return $objs[$classname];
}
<?class SingleClass{ public static function getInstance(){
static $single;
if($single==null){
$single=new SingleClass();
return $single;
}else return $single;
} private $t=null; function __construct(){
$this->t=date("Y/m/d h:i:s");
echo "SingleClass construct ".$this->t;
}
}SingleClass::getInstance();
SingleClass::getInstance();
SingleClass::getInstance();
?>每次都调用 SingleClass::getInstance(); 就可以得到这个类的实例并且只被初始化一次
class singleDataBase {
//私有数据库属性
private $type;
private $config;
//私有数据库连接对象
private $CONN;
//私有构造函数
//禁止类外调用,保证类不能外面实例化.
private function __construct($inType = null,$inConfig = null) {
$this->type = intval($inType);
$this->config = $inConfig;
switch(intval($this->type)) {
//这里个人代码........
}
private static $DB = null;
//私有静态返回对象.
//通过null来判断出该对象是否已经建立过,假如建立过则返回数据对象.
private static function setDb($inType = null,$inConfig = null) {
if(self::$DB === null) {
self::$DB = new singleDataBase($inType,$inConfig);
}
return self::$DB;
}
//提供公有静态调用接口,来调用 私有静态返回实例.
public static function getDb($inType = null,$inConfig = null) {
return self::setDb($inType,$inConfig);
}
}
$db = singleDataBase::getDb(1,5);
var_dump($db);
class ClassUser
{
.....
function &instance($uid)
{
static $instance;
if (!isset($instance)) {
$instance = new ClassUser($uid);
}
return $instance;
}
.....
}
$oUser = ClassUser::instance($uid);
实例化时应该是:
$oUser &= ClassUser::instance($uid);
可能要到php8