thinkphp 如何设置全局变量

比如,一个网站有一些全局的变量,比如网站名称、网页标题、关键字、备案号、联系信息等,在每个页面都要用到的,而thinkphp似乎是每次请求控制器才执行一些操作。也许我表达... 比如,一个网站有一些全局的变量,比如网站名称、网页标题、关键字、备案号、联系信息等,在每个页面都要用到的,而thinkphp似乎是每次请求控制器才执行一些操作。
也许我表达不清楚,我的意思是:如何让网站一打开,就取得数据库的网站信息,而不用在每个方法都去朝族一次数据库呢?
本人是thinkphp菜鸟,烦请大家耐心指导。。。。。。
无满意答案啊。。。。。
似乎大家都没明白我的意图,不知道是我表述有误还是大家理解有限。。。。郁闷中
展开
 我来答
袭空岚枫
2015-06-17 · TA获得超过190个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:194万
展开全部
全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是从定义该变量的位置开始至源文件结束。
在TP中,不管是前台还是后台,总会用一个控制器的作用是权限控制,其他同级的所有控制器都必须继承这个控制器,所以作为全局变量,可以再这个控制器里定义,形式如下:
public $val;
注:不能使用private,否则无法再继承的控制器中使用。
默莱枫
2012-09-25 · 超过18用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:44.6万
展开全部
//获取地铁列表(利用缓存)
function getSubwayList() {
$subwayListArr = F("SubwayList");
if (empty($subwayListArr)) {
$subwayListArr = M("Subway")->where("status=1")->order("sort_order asc")->select();
F("SubwayList", $subwayListArr);
}
return $subwayListArr;
}
楼主应该是要这种效果,第一次使用数据库,以后访问缓存,使用F()简单缓存函数就可以了。使用的时候调用getSubwayList()。不懂再问我
(我正好也在做网站缓存优化,这个缓存还有一个处理。当你数据更新的时候,需要更新缓存。)
if(插入、删除、编辑成功){
$subwayListArr = M("Subway")->where("status=1")->order("sort_order asc")->select();
F("SubwayList", $subwayListArr);
}
追问
你这个好像只是把数据存放位置进行了一个转移而已
那么,是不是在url每请求一次控制器或者模块就来读取一次数据啊?确切的说是url每请求一次控制器或者模块就来写代码读取一次数据啊?
比如每次都
$this->assign('变量','变量值');
我的疑惑是在这里,而不是数据的存储读取方式或方向。。。。。
谢谢!
追答
你的意思是打开网站的第一次就把固定不变的数据请求到客户端。这个你用cookie做,第一次请求到cookie,然后从之后的读取从cookie来读取就可以了。
不过这个优化没有什么差别吧,固定不变的数据量其实并不大。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
以明钰08
2012-09-23 · TA获得超过118个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:90.6万
展开全部
看你的需求,你可以利用thinkphp提供的文件缓存功能,把数据库中这些固定的信息读出来以文件缓存的形式保存,以后在需要时直接读缓存即可,而tp提供了非常好的缓存接口
F('data',$Data);//保存数据到缓存
F('data');//读取缓存
F('data',NULL);//删除缓存数据
追问
问题是如何去触发这段代码呢?或者说,如果不使用缓存又如何做?
如果您给给一个实例,就好了!
追答
既然是利用框架,那么你不用管内部是怎么实现的,直接用就是了,就当是用php系统提供的session一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寂娃只丶是楣18bb8
2012-09-27 · 超过13用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:34.7万
展开全部
很难,除非你的网站特别简单,一个数据表就够。。一般的网站都有多个不同的表,里面字段大都不一样,还有多个数据库的情况,你就耐心点每个方法都进去次吧,啊~,乖
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8c5e3b6
2012-09-21 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:94.2万
展开全部
你可以静态化首页
而且这些信息数量不大也不会影响网站的访问速度
放在数据库中就可以了
或者像一楼的兄弟说的卸载conf文件中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式