用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2547|回复: 7
收起左侧

[视图] 全局变量

[复制链接]
发表于 2018-5-3 10:48:18 | 显示全部楼层 |阅读模式
如何在所有网页中显示一个变量,在一个网页中设置了值.通用于其它全部网页..
现在使用的是一个cooike.但是需要在每个控制器中获取值,能否只需要获取一次值.在所有页都可以使用这个变量
发表于 2018-5-3 11:18:50 | 显示全部楼层
跨请求你只能用 cookie,或者 session,或者数据库,或者 redis 等第三方存储,PHP 本身每次请求都释放所有内存,不保留任何数据。
另外,你这个编程思路不是 PHP 的思路,PHP 有独特的思考方式。
 楼主| 发表于 2018-5-3 15:04:58 | 显示全部楼层
本帖最后由 kao10324 于 2018-5-3 15:10 编辑
Hex 发表于 2018-5-3 11:18
跨请求你只能用 cookie,或者 session,或者数据库,或者 redis 等第三方存储,PHP 本身每次请求都释放所有 ...

$this->load->view("nav");
$this->load->view("page");
page前端页里无法调用nav中设置的变量吗
nav为公共页,不同的page页需要调用系统里同一个变量,不能调用nav里变量的话.那就需要在每个不同的page页里重新查找一遍该变量来使用了?
发表于 2018-5-3 23:37:50 | 显示全部楼层
kao10324 发表于 2018-5-3 15:04
$this->load->view("nav");
$this->load->view("page");
page前端页里无法调用nav中设置的变量吗

你是想把控制器传进来的变量,再传到 nav 里?
 楼主| 发表于 2018-5-4 08:36:47 | 显示全部楼层
Hex 发表于 2018-5-3 23:37
你是想把控制器传进来的变量,再传到 nav 里?

$this->load->view("nav");
$this->load->view("page");
我在前端page页中执行$this->load->view("nav");
但是nav页中的变量无法在page页中使用
发表于 2018-5-4 09:21:21 | 显示全部楼层
kao10324 发表于 2018-5-4 08:36
$this->load->view("nav");
$this->load->view("page");
我在前端page页中执行$this->load->view("nav"); ...

肯定啊 子页面的变量,父页面能用,这个作用域不就乱了吗?就好像局部变量可以全局使用,那不就有问题了吗?

建议说一下你的需求,然后给你一个在 MVC 下合理的解决方案。
 楼主| 发表于 2018-5-7 14:57:33 | 显示全部楼层
Hex 发表于 2018-5-4 09:21
肯定啊 子页面的变量,父页面能用,这个作用域不就乱了吗?就好像局部变量可以全局使用,那不就有问题了 ...

比如我的一个前端index页面由
$this->load->view("nav");
$this->load->view("page");
组成,
nav页为所有前端页面共用的一个页面,有一个需要通过计算得来的变量,在nav中使用.
即这个变量的在整个站的所有页面(nav中)都能存在
所以整个站只需要nav这里计算一次就可以了..但如果我某个地方也需要用到这个变量.
比如前面说的page.不能直接调用nav中计算出来的结果..还得该页面重新再计算.
发表于 2018-5-7 19:40:01 | 显示全部楼层
kao10324 发表于 2018-5-7 14:57
比如我的一个前端index页面由
$this->load->view("nav");
$this->load->view("page");

明白你的意思了,你这个计算原则上应该做成一个 Helper,然后在视图里需要的地方去调用。也就是把变量写成一个函数,这就是 Helper 存在的价值。

本版积分规则