欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php中全局变量在多个文件中引用问题

程序员文章站 2022-05-08 14:53:37
...
问大家个问题:
能不能在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赋值";?>


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.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 是写桌面程序的,与用户的交互是在程序运行期间完成的
而网站程序是间断运行的,不会保存现场(也无法保存现场)

非常感谢两位版主热心帮助