5句代码,但得不到想要的结果?!

monsterbaby 2006-12-18 09:14:26
<?php
class JavaBridgeLoader {
private static $configedFlag = false;

public static function preConfig(){
var_dump(self::$configedFlag);
if(self::$configedFlag == false){
self::$configedFlag = true;
}
var_dump(self::$configedFlag);
}
}
JavaBridgeLoader::preconfig();
?>
实际运行结果为:
第一次运行为 bool(false) bool(true)
第二次运行为 bool(false) bool(true)


想要的运行结果为:
第一次运行为 bool(false) bool(true)
第二次运行为 bool(true) bool(true)

因为我这里$configedFlag 是一个静态变量啊,设置为 true了以后,怎么第二次运行还是false??晕了!?
我是 winsp2 + apache2.0 + php 5.2.0

请赐教!
...全文
231 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
monsterbaby 2006-12-18
  • 打赏
  • 举报
回复
我知道你想要的是applaction---

说的好,知道了!谢谢!
zhys9 2006-12-18
  • 打赏
  • 举报
回复
既然是初始化只后就不用改变了,为什么不直接赋值TRUE呢
an9ryfr09 2006-12-18
  • 打赏
  • 举报
回复
这样些就可以达到你要的效果了:

session_start();
class JavaBridgeLoader {
function __construct(){
if(!isset($_SESSION['configedFlag']))
$_SESSION['configedFlag'] = false;
}

public function preConfig(){
var_dump($_SESSION['configedFlag']);
if($_SESSION['configedFlag'] == false){
$_SESSION['configedFlag'] = true;
}
var_dump($_SESSION['configedFlag']);
}
}
$jb = new JavaBridgeLoader();
$jb->preConfig();
an9ryfr09 2006-12-18
  • 打赏
  • 举报
回复
session非cookie,是保存在服务器端的。不是保存在本地文本里面。
我知道你想要的是applaction,可惜php里面没有这种东西。
常量也逃不出当前页面的结束。
monsterbaby 2006-12-18
  • 打赏
  • 举报
回复
php就没有一个静态的(在php运行开始到结束都保存的)区域吗?

session的话不就是用本地的文本来保存变量吗?

傻傻地问php的常量可以吗?
an9ryfr09 2006-12-18
  • 打赏
  • 举报
回复
即使是静态变量,它的声明周期也限于本页面结束。
你所谓的运行两次是刷新了一下页面吧?那肯定不行的。

JavaBridgeLoader::preconfig();
JavaBridgeLoader::preconfig();

在同一页面连续运行两次会达到你要的效果:
bool(false) bool(true)
bool(true) bool(true)

如果刷新页面也想得到这样的效果,那就不应该用static而应该用session。
monsterbaby 2006-12-18
  • 打赏
  • 举报
回复
那有没有办法解决?
总不要我设计一个数据库来保存这个变量啊?!
ice_berg16 2006-12-18
  • 打赏
  • 举报
回复
脚本结束后,所有的资源都已被释放,不会常驻内存,当然是这种结果。
monsterbaby 2006-12-18
  • 打赏
  • 举报
回复
会不会是每次都装载了JavaBridgeLoader的关系?!

如果是的话,我应该怎么解决?!
谢谢

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧