问大家个问题:
能不能在A php文件中定义全局变量 ,B php文件引用并赋值,C php文件引用并访问,我测试了好像不行。B中赋值,C中只能看到A中的内容,看不到B改变后的值。
谢谢大家
回复讨论(解决方案)
当然可以,前提是
C.phpinclude 'A.php';include 'B.php';或
B.php
include 'A.php';
C.php
include 'B.php';
你C php 没有引用B php吧?
两位版主好,我写了个简单的例子说明我的想法:
A.php跳转到B赋值";?>
B.php
B单元中var_global的值是:" . $var_global;echo "跳转到查看结果";?>
C.php
C单元中var_global的值是:" . $var_global;?>
执行的结果是:
A.php:->
跳转到B赋值
B.php->
B单元中var_global的值是:B来赋值
跳转到查看结果
C.php->
跳转到B赋值
C单元中var_global的值是:
即C中获得的值为空,不是我想要的 “B来赋值”
当然可以,前提是
C.phpinclude '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 是写桌面程序的,与用户的交互是在程序运行期间完成的
而网站程序是间断运行的,不会保存现场(也无法保存现场)
非常感谢两位版主热心帮助
本文原创发布php中文网,转载请注明出处,感谢您的尊重!