问大家个问题:
能不能在a php文件中定义全局变量 ,b php文件引用并赋值,c php文件引用并访问,我测试了好像不行。b中赋值,c中只能看到a中的内容,看不到b改变后的值。
谢谢大家
回复讨论(解决方案) 当然可以,前提是
c.php
include 'a.php';include 'b.php';
或
b.php
include 'a.php';
c.php
include 'b.php';
你c php 没有引用b php吧?
两位版主好,我写了个简单的例子说明我的想法:
a.php
b.php
c.php
执行的结果是:
a.php:->
跳转到b赋值
b.php->
b单元中var_global的值是:b来赋值
跳转到查看结果
c.php->
跳转到b赋值
c单元中var_global的值是:
即c中获得的值为空,不是我想要的 “b来赋值”
当然可以,前提是
c.php
include 'a.php';include 'b.php';
或
b.php
include 'a.php';
c.php
include 'b.php';
我的想法就是像c那样,在a中定义一些全局变量,在b中通过流程赋值改变他,在c和其它的php单元中可以使用这些改变之后的全局变量,不用session。可行么?
顺序的全部include,应该是可以改变的,但是b和c之间没有这种引用关系,写起来不明晰
你c php 没有引用b php吧?
而且有时候c.php是不能include b.php的,例如
b是一个登陆页面
c是其他的业务页面,b中登陆做个标记,c中判断这个标记
那是不可以的!
你不在 c.php 中引用 b.php,那么 b.php 如何执行的?
如果不是包含关系,那就得通过参数传递或是用session
不合理的设计,为什么要这么绕来绕去。
那是不可以的!
你不在 c.php 中引用 b.php,那么 b.php 如何执行的?
如果不是包含关系,那就得通过参数传递或是用session
还是以登录作为例子,a中有个登录成功与否的标志$login,b中负责登陆,如果成功就 $login = success,c中不管b执行不执行,就是判断$login是不是等于success,不等于就不工作。
那就是只能用session或者cookie之类的了?
不合理的设计,为什么要这么绕来绕去。
我一直用c,初学php,正在学习c的哪些用法和php不同
对,你这种情况用session/cookie最适合不过了。
是的!
那是不可以的!
你不在 c.php 中引用 b.php,那么 b.php 如何执行的?
如果不是包含关系,那就得通过参数传递或是用session
还是以登录作为例子,a中有个登录成功与否的标志$login,b中负责登陆,如果成功就 $login = success,c中不管b执行不执行,就是判断$login是不是等于success,不等于就不工作。
那就是只能用session或者cookie之类的了?
你用 c 是写桌面程序的,与用户的交互是在程序运行期间完成的
而网站程序是间断运行的,不会保存现场(也无法保存现场)
非常感谢两位版主热心帮助
